Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Алгоритмы > Поиск дубликатов файлов |
Автор: HMLd 12.4.2010, 12:45 |
Здравтствйте. Надо написать программу для поиска дубликатов файлов в директории. Интеремует именно алшоритм. Почитал гугл - многие считают md5 и потом сортируют это дело QuickSort'ом. А может лучше было бы построить бинарное дерево поиска с ключом TSearchRec (т.к. писаться всё это будет в билдере)? Как вы думаете? |
Автор: HMLd 12.4.2010, 12:57 |
FindFirst(...) - получаем ссылку на структуру TSearchRec (или WIN32_FIND_DATA если на API). Потом class BST { BST* left; BST* right; BST* parent; TSearchRec* obj; . . . }; Указателю Obj присваиваем адрес объекта, на который указывает ссылка. Выдёргиваем имя файла из структуры и размер или что там нам ещё надо. И строим дерево. |
Автор: azesmcar 12.4.2010, 13:00 |
И зачем так извращаться? Чем не устраивают контейнеры STL? Почему бы не залить все в multimap/multiset? |
Автор: HMLd 12.4.2010, 13:10 |
А multimap/multiset - структуры типа BST? |
Автор: azesmcar 12.4.2010, 13:28 |
Да Добавлено через 2 минуты и 2 секунды тут тебе больше подойдет std::map<string, string> путь к файлу -> хэш |
Автор: HMLd 12.4.2010, 13:36 |
Спасибо. |
Автор: Polesinskij 1.11.2013, 17:49 |
а чем отличается мдп5 от хэша?расталкуйте кто знает тут |
Автор: azesmcar 1.11.2013, 18:09 |
MD5 это алгоритм хеширования. |
Автор: disputant 2.11.2013, 11:50 |
Дубликат должен иметь одинаковый размер. md5 - это уже перебор, за глаза хватит crc32. Более того, в зависимости от того, как все происходит - может оказаться более быстрым просто непосредственное сравнение файлов. |