Как бы я решил этот вопрос? Я немного запутался, как начать. Ключи 34, 25, 79, 56, 6 должны быть вставлены в хеш-таблицу длиной 11, где коллизии будут разрешаться с помощью открытой адресации. Хэш-функция имеет вид h(k,i) = (k mod11 + i(1+k mod10))mod11 a. Рассчитайте последовательность зондирования каждого из вышеуказанных ключей.
Как найти пробную последовательность ключей?
Ответы (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
Разве хэш-таблица не предполагает только 11 слотов? Вы ставите 12.
- person HPotter; 06.06.2016
Мой плохой да, 0-10 это 11
- person Ben; 06.06.2016
разве 56 не должно быть на позиции 4?
- person gateway2745; 26.02.2020