Изменения

Перейти к: навигация, поиск

Обсуждение:Хеширование кукушки

26 байт добавлено, 22:02, 24 апреля 2012
Нет описания правки
{{tick | ticked = 1}} Объяснить, какое зацикливание может появиться в функции add.
: {{tick| ticked = 1}} "Если в ходе перемещений элементов в таблице на очередном шаге мы опять хотим переместить элемент <tex>x</tex> в ячейку <tex>h_1(x)</tex> то значит произошло зацикливание." - элемент <tex>x</tex> уже лежит в <tex>h_1(x)</tex>, тут, вроде, нужно сказать про элемент <tex>y</tex> такой, что <tex>h_1(y) = h_1(x)</tex>. --[[Участник:Rybak|Андрей Рыбак]] 17:48, 23 апреля 2012 (GST)
:: Вроде правильно, потому что <tex>x</tex> мог переместиться в <tex>h_2(x)</tex>, и вот если он вернулся в <tex>h_1(x)</tex> то зациклились.
::: Используйте подпись <nowiki>--~~~~</nowiki> и отступы. По делу: ''новый элемент'' <tex>x</tex>, который мы добавляем в таблицу, в любом случае в самом начале работы попадает в <tex>h_1(x)</tex> или <tex>h_2(x)</tex>. Если в начале работы обе ячейки заняты, мы достаем из одной ячейки (обозначим её <tex>h_i(x)</tex>) элемент <tex>y</tex> (заметим, что <tex>h_i(y) = h_i(x)</tex>), в освободившуюся кладем <tex>x</tex>, а <tex>y</tex> кладем в <tex>h_j(y),~ (i \ne j)</tex> и так далее. Зацикливание, это когда для очередного <tex>y</tex>: <tex>h_i(y) = h_i(x)</tex>. --[[Участник:Rybak|Андрей Рыбак]] 21:14, 24 апреля 2012 (GST)
:::: Когда для очередного <tex>y</tex>: <tex>h_i(y) = h_i(x)</tex> у нас <tex>x</tex> пойдет в <tex>h_j(x)(j!=i)</tex> и вот если потом вернулись то зациклились. --[[Участник:Watson|Роскошный Яков]] 22:01, 24 апреля 2012 (GST)
::::: Теперь понял. {{tick| ticked = 1}} Нужно подробней расписать --[[Участник:Rybak|Андрей Рыбак]] 22:24, 24 апреля 2012 (GST)
{{tick | ticked = 1}} Не рассмотрен случай заполненной хеш-таблицы.
1302
правки

Навигация