![]() |
|
![]() ![]() ![]() |
|
HMLd |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 67 Регистрация: 27.6.2006 Где: Polska Репутация: нет Всего: 0 |
Здравтствйте. Надо написать программу для поиска дубликатов файлов в директории. Интеремует именно алшоритм. Почитал гугл - многие считают md5 и потом сортируют это дело QuickSort'ом.
А может лучше было бы построить бинарное дерево поиска с ключом TSearchRec (т.к. писаться всё это будет в билдере)? Как вы думаете? |
|||
|
||||
azesmcar |
|
||||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 1 Всего: 211 |
Я бы сперва проверил по размеру а потом по md5. Так будет быстрее. Добавлено через 2 минуты и 30 секунд
каким образом собираешься строить бинарное дерево? |
||||
|
|||||
HMLd |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 67 Регистрация: 27.6.2006 Где: Polska Репутация: нет Всего: 0 |
FindFirst(...) - получаем ссылку на структуру TSearchRec (или WIN32_FIND_DATA если на API).
Потом class BST { BST* left; BST* right; BST* parent; TSearchRec* obj; . . . }; Указателю Obj присваиваем адрес объекта, на который указывает ссылка. Выдёргиваем имя файла из структуры и размер или что там нам ещё надо. И строим дерево. |
|||
|
||||
azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 1 Всего: 211 |
И зачем так извращаться? Чем не устраивают контейнеры STL? Почему бы не залить все в multimap/multiset?
|
|||
|
||||
HMLd |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 67 Регистрация: 27.6.2006 Где: Polska Репутация: нет Всего: 0 |
А multimap/multiset - структуры типа BST?
|
|||
|
||||
azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 1 Всего: 211 |
Да
Добавлено через 2 минуты и 2 секунды тут тебе больше подойдет std::map<string, string> путь к файлу -> хэш |
|||
|
||||
HMLd |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 67 Регистрация: 27.6.2006 Где: Polska Репутация: нет Всего: 0 |
Спасибо.
|
|||
|
||||
Polesinskij |
|
|||
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 31.10.2013 Репутация: нет Всего: нет |
а чем отличается мдп5 от хэша?расталкуйте кто знает тут
|
|||
|
||||
azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 1 Всего: 211 |
||||
|
||||
disputant |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 210 Регистрация: 28.11.2011 Репутация: 2 Всего: 3 |
Дубликат должен иметь одинаковый размер.
md5 - это уже перебор, за глаза хватит crc32. Более того, в зависимости от того, как все происходит - может оказаться более быстрым просто непосредственное сравнение файлов. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Алгоритмы" | |
|
Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Алгоритмы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |