на главнуюВсе эхи RU.NETWORKS
войти ?

Re: Посоветовать хэш

От Eugene Grosbein (2:5006/1) к Alex Aka Parasite

В ответ на Заголовок предыдущего сообщения в треде (Имя Автора)


Reply-To: eugen@grosbein.pp.ru

22 авг 2009, суббота, в 16:54 KRAT, Alex Aka Parasite написал(а):

AD>> это не ошибка. Это заранее запланированное поведение. Планировать
AD>> обработку коллизий надо с самого начала.
AAP> С самого начала надо планировать *отсутствие* оных.

Hе бывает хешей без коллизий.

AAP> Если оно таки появится - то
AAP> это уже будет как минимум экцепшн в проекте,

У тебя совершенно неправильный подход, хеш-коллизия должна рассматриваться
как штатное поведение хеша, а вовсе не как "экцепшн в проекте".

AAP> и чревато самыми разнообразными -
AAP> а потом таки ОПЯТЬ планирование отсутствия оных (с переделкой проекта).

Планировать надо не отсутствие коллизии у хеша - так не бывает,
а отсутствие проблем у программы с обработкой коллизий.

AD>> есть возможность проверить на коллизию в момент её возниктновения?
AAP> Есть (сверять хэш покладаемого нового файла на совпадение с уже
AAP> существуюшими в
AAP> базе - а их весьма много), но это шибко замедлит всю работу проекта, ибо
AAP> придется ПОСТОЯHHО рыться в базе на предмет предыдущих хэшей.

С чего бы оно шибко замедлило? Правильный хеш даёт непосредственный
указатель на небольшой массив, в который нужно поместить объект.
Если вставлять в массив элементы так, чтобы массив оставался
отсортированным, то искать там элемент будет очень быстро, дихотомией.

AAP> Более того, это:
AAP> а)не гарантирует таки отсутствия коллизий - а будет обеспечивать их отлов
AAP> и
AAP> обработку по какому-то другому алгоритму, что уже приводит к
AAP> необходимости
AAP> наличия минимум ДВУХ обработок

Это нормально и даже неизбежно.

AAP> б)не обеспечит обработку файлА, УЖЕ находящегося на диске (либо вызовет
AAP> необходимость его полного перелопачивания "как новый покладаемый файл",
AAP> пофайлово).

Вначале просто нужно будет навести во всём хламовнике элементарный
порядок (определить отношение порядка). Дальше всё будет автоматически
получаться.

Eugene
--
РЖД: лечение терминальной стадии рака по методу А. Карениной.
--- slrn/0.9.8.1 (FreeBSD)
* Origin: Svyaz Service JSC (2:5006/1@fidonet)

Ответы на это письмо:

From: Username
Заголовок следующего сообщения в треде может быть длинным и его придется перенести на новую строку

From: Username
Или коротким

FGHI-url этого письма: area://RU.NETWORKS?msgid=www.svzserv.kemerovo.su+8b8b7eb5