Двойное хэширование в C#. Разрешение коллизий
Помогите написать нормальную хеш функцию. Все что я находил, мало похоже на двойное хеширование. И примеров нету.Вот единственное, что нашел:
- Установить i = h1(K)
- Если TABLE[i] пуст, то перейти к шагу 6, иначе, если по этому адресу искомый, алгоритм завершается.
- Установить c = h2(K)
- Установить i = i – c, если i < 0, то i = i + M.
- Если TABLE[i] пуст, то переход на шаг 6. Если искомое расположено по этому адресу, то алгоритм завершается, иначе возвращается на шаг 4.
- Вставка. Если N = M – 1, то алгоритм завершается по переполнению. Иначе увеличить N, пометить ячейку TABLE[i] как занятую и установить в нее значение ключа K.
Непонятно, какую брать функцию H1(k) и H2(k)