Как найти пробную последовательность ключей?

Как бы я решил этот вопрос? Я немного запутался, как начать. Ключи 34, 25, 79, 56, 6 должны быть вставлены в хеш-таблицу длиной 11, где коллизии будут разрешаться с помощью открытой адресации. Хэш-функция имеет вид h(k,i) = (k mod11 + i(1+k mod10))mod11 a. Рассчитайте последовательность зондирования каждого из вышеуказанных ключей.


person HPotter    schedule 05.06.2016    source источник


Ответы (1)


Последовательность проверки будет следующей: 1,3,2,8,6. Чтобы найти это, вы должны сначала ввести числа в таблицу, используя уравнение. Каждый раз, когда происходит столкновение (каждый раз, когда вы пытаетесь ввести число в таблицу, когда число уже есть), вы увеличиваете i (i начинается с 0).

Например, первое число 34 записывается как h(34,0)=(34mod11+0(1+34mod10))mod 11, что равно 1. Продолжайте делать это для всех ключей.

Хеш-таблица:
0:
1: 34
2: 79
3: 25
4 :
5:
6: 6
7:
8: 56
9:
10:

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

person Ben    schedule 05.06.2016
comment
Разве хэш-таблица не предполагает только 11 слотов? Вы ставите 12. - person HPotter; 06.06.2016
comment
Мой плохой да, 0-10 это 11 - person Ben; 06.06.2016
comment
разве 56 не должно быть на позиции 4? - person gateway2745; 26.02.2020