
ASD_Lecture04
.pdf
Приклад: Хеш функція #1
value = (s[i] + 31*value) % 101;
|
Значення |
Ключ |
хеш-функції |
Aho |
49 |
Kruse |
95 |
Standish |
60 |
Horowitz |
28 |
Langsam |
21 |
Sedgewick |
24 |
Knuth |
44 |
значення у результуючій таблиці рівномірно розподілені
Лекція 4 |
41 |

Приклад: Хеш функція #2
value = (s[i] + 1024*value) % 128;
|
Значення |
|
|
Ключ |
хеш-функції |
|
|
|
|
||
Aho |
111 |
|
Розподіл |
Kruse |
101 |
|
по таблиці |
Standish |
104 |
має кластерний |
|
Horowitz |
122 |
|
характер |
Langsam |
109 |
|
|
Sedgewick |
107 |
|
|
Knuth |
104 |
|
|
Лекція 4 |
42 |

Приклад: Хеш функція #3
value = (s[i] + 3*value) % 7;
|
Значення |
|
|
Ключ |
хеш-функції |
|
|
Aho |
0 |
|
|
|
|||
Kruse |
5 |
|
|
Standish |
1 |
|
“колізії” |
Horowitz |
5 |
|
|
Langsam |
5 |
|
|
|
|||
Sedgewick |
2 |
|
|
Knuth |
1 |
|
|
Лекція 4 |
43 |

Колізії
•Коли двом ключам ставиться у відповідність одне місце у таблиці.
•Висока імовірність появи колізії.
Дні народження
К-сть людей |
Імовірність |
10 0.1169
20 0.4114
30 0.7063
40 0.8912
50 0.9704
60 0.9941
70 0.9992
Лекція 4 |
44 |

Вставляння
•Обчислити хеш-функцію для отримання позиції.
•Постаратися вставити ключ у цю позицію.
•Вирішити колізію.
Лекція 4 |
45 |

Приклад: Вставляння
Aho, Kruse, Standish, Horowiz, Langsam, Sedgewick, Knuth
Aho
хеш-таблиця
0 Aho
хеш |
|
1 |
|
0 |
2 |
||
функція |
|||
|
3 |
||
|
|
4
5
6
Лекція 4 |
46 |

Приклад: Вставляння
Aho, Kruse, Standish, Horowiz, Langsam, Sedgewick, Knuth
хеш-таблиця
Kruse
0 Aho
хеш |
|
1 |
|
5 |
2 |
||
функція |
|||
|
3 |
||
|
|
||
|
|
4 |
5 Kruse
6
Лекція 4 |
47 |

Приклад: Вставляння
Aho, Kruse, Standish, Horowiz, Langsam, Sedgewick, Knuth
хеш-таблиця
0 Aho
1 Standish
Standish |
хеш |
1 |
2 |
|
функція |
||||
|
|
3 |
||
|
|
|
||
|
|
|
4 |
5 Kruse
6
Лекція 4 |
48 |

Приклад: Пошук
•Обчислити хеш-функцію для отримання позиції.
•Постаратися знайти ключ у даній позиції.
•Якщо не знайдено, тоді шукати у відповідності із застосованим методом вирішення колізій.
Лекція 4 |
49 |

Приклад: Пошук
Aho, Kruse, Standish, Horowiz, Langsam, Sedgewick, Knuth
хеш-таблиця
Kruse
0 Aho
1 Standish
хеш |
5 |
2 |
|
функція |
|||
|
3 |
||
|
|
||
|
|
4 |
5 Kruse
знайдено
6
Лекція 4 |
50 |