Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Поиск дубликатов файлов 
:(
    Опции темы
HMLd
Дата 12.4.2010, 12:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 67
Регистрация: 27.6.2006
Где: Polska

Репутация: нет
Всего: 0



Здравтствйте. Надо написать программу для поиска дубликатов файлов в директории. Интеремует именно алшоритм. Почитал гугл - многие считают md5 и потом сортируют это дело QuickSort'ом. 

А может лучше было бы построить бинарное дерево поиска с ключом TSearchRec (т.к. писаться всё это будет в билдере)? Как вы думаете?
PM MAIL   Вверх
azesmcar
Дата 12.4.2010, 12:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 1
Всего: 211



Цитата(HMLd @  12.4.2010,  12:45 Найти цитируемый пост)
Почитал гугл - многие считают md5 и потом сортируют это дело QuickSort'ом. 

Я бы сперва проверил по размеру а потом по md5. Так будет быстрее.

Добавлено через 2 минуты и 30 секунд
Цитата(HMLd @  12.4.2010,  12:45 Найти цитируемый пост)
А может лучше было бы построить бинарное дерево поиска с ключом TSearchRec (т.к. писаться всё это будет в билдере)? Как вы думаете? 

каким образом собираешься строить бинарное дерево?
PM   Вверх
HMLd
Дата 12.4.2010, 12:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 67
Регистрация: 27.6.2006
Где: Polska

Репутация: нет
Всего: 0



FindFirst(...) - получаем ссылку на структуру TSearchRec (или WIN32_FIND_DATA если на API). 
Потом
class BST
{
    BST*        left;
    BST*        right;
    BST*        parent;
    TSearchRec* obj;
        .
        .
        .
};

Указателю Obj присваиваем адрес объекта, на который указывает ссылка. Выдёргиваем имя файла из структуры и размер или что там нам ещё надо. И строим дерево. 
PM MAIL   Вверх
azesmcar
Дата 12.4.2010, 13:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 1
Всего: 211



И зачем так извращаться? Чем не устраивают контейнеры STL? Почему бы не залить все в multimap/multiset?
PM   Вверх
HMLd
Дата 12.4.2010, 13:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 67
Регистрация: 27.6.2006
Где: Polska

Репутация: нет
Всего: 0



А multimap/multiset - структуры типа BST?
PM MAIL   Вверх
azesmcar
Дата 12.4.2010, 13:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 1
Всего: 211



Да

Добавлено через 2 минуты и 2 секунды
тут тебе больше подойдет std::map<string, string>
путь к файлу -> хэш

PM   Вверх
HMLd
Дата 12.4.2010, 13:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 67
Регистрация: 27.6.2006
Где: Polska

Репутация: нет
Всего: 0



Спасибо.
PM MAIL   Вверх
Polesinskij
Дата 1.11.2013, 17:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 31.10.2013

Репутация: нет
Всего: нет



а чем отличается мдп5 от хэша?расталкуйте кто знает тут
PM MAIL   Вверх
azesmcar
Дата 1.11.2013, 18:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 1
Всего: 211



Цитата(Polesinskij @  1.11.2013,  17:49 Найти цитируемый пост)
а чем отличается мдп5 от хэша?расталкуйте кто знает тут 

MD5 это алгоритм хеширования.
PM   Вверх
disputant
Дата 2.11.2013, 11:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 210
Регистрация: 28.11.2011

Репутация: 2
Всего: 3



Дубликат должен иметь одинаковый размер.

md5 - это уже перебор, за глаза хватит crc32. Более того, в зависимости от того, как все происходит - может оказаться более быстрым просто непосредственное сравнение файлов.


PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Алгоритмы | Следующая тема »


 




[ Время генерации скрипта: 0.0860 ]   [ Использовано запросов: 20 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.