aKey - твоя строка.
length - длина строки
aTableSize - константа - величина твоей таблицы (если умножить на три, то повторов практически не будет), т.е. если нужна разрядность байт, то 255, если dword, то FFFFFFFF.
M - константа. Надо подобрать число. В твоём случае наверное 000F00.
Всю малину портит 00. По этому может такой алгоритм и не подойдёт.
Вот алгоритм которым я пользуюсь для хеш таблиц. Нулевые значения тут тоже пройдут.
Выдрал из компонента.
code_34876.txt
Два компонента: http://forum.hiasm.com/forum_serv.php?q=56&id=3855
Обеспечивают доступ к значениям таблицы по левой части ключа.
Типа: бла бла бла=тра та та селёдка.
Работает очень шустро. Таблицу из 800 000 правил строит за миллисекунды.
Доступ по ключю - единицы микросекунд.
Второй компонент применяет к ключу маску и восстанавливает в правой части значения под звёздочками.
Типа - все *но *ют=всё *но *ют. Ключ "все вино выпьют" значение по ключу "всё вино выпьют".
Ответов: 2059
Рейтинг: 132
|
|||
карма: 6 |
| ||
файлы: 1 | code_34876.txt [1.8KB] [298] |