
29.07.2007, 01:07
|
|
Pagan Heart
Регистрация: 12.08.2004
Сообщений: 3,791
Провел на форуме: 6490435
Репутация:
2290
|
|
Объясняю вкратце. Имеем структуру вида pass:hash, по 16 байт. итого 32.
узнаем количество записей из размера базы. Пусть будет b.
левая граница a=0, правая граница b
открываем базу, упорядоченную по хэшам. Читаем запись из середины (a+b)/2. Если прочтенный хэш больше(как строка), то выбираем первую половину этого куска. т.е. сдвигаем правую границу на x, а если меньше - то левую на x.
Устанавливаем x на (a+b)/2. Повторяем, пока не найдем результат, либо когда поймем, что нет записей.
|
|
|