Показать сообщение отдельно

  #8  
Старый 29.07.2007, 01:07
nerezus
Pagan Heart
Регистрация: 12.08.2004
Сообщений: 3,791
Провел на форуме:
6490435

Репутация: 2290


Отправить сообщение для nerezus с помощью ICQ
По умолчанию

Объясняю вкратце. Имеем структуру вида pass:hash, по 16 байт. итого 32.
узнаем количество записей из размера базы. Пусть будет b.
левая граница a=0, правая граница b
открываем базу, упорядоченную по хэшам. Читаем запись из середины (a+b)/2. Если прочтенный хэш больше(как строка), то выбираем первую половину этого куска. т.е. сдвигаем правую границу на x, а если меньше - то левую на x.
Устанавливаем x на (a+b)/2. Повторяем, пока не найдем результат, либо когда поймем, что нет записей.