Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ASD_Lecture04

.pdf
Скачиваний:
19
Добавлен:
12.02.2016
Размер:
1.23 Mб
Скачать

Приклад: Пошук

Aho, Kruse, Standish, Horowiz, Langsam, Sedgewick, Knuth

хеш-таблиця

0 Aho

1 Standish

Sedgwick

хеш

2

2

функція

 

 

3

 

 

 

 

 

 

4

5 Kruse

Не знайдено

6

Лекція 4

51

Вирішення колізій

Використовуються три методи:

Лінійне зондування.

Подвійне хешування.

Зчеплення.

Лекція 4

52

Лінійне зондування

Найпростіший метод хешування з відкритою адресою.

Лінійний пошук у хеш-таблиці починаючи із місця де трапилася колізія.

Якщо таблиця стає напівзаповненою, тоді з’являється тенденція до кластеризації.

Видалення елементів є складним.

Лекція 4

53

Приклад: Вставляння з лінійним зондуванням

Aho, Kruse, Standish, Horowiz, Langsam, Sedgewick, Knuth

Aho

хеш-таблиця

0 Aho

хеш

 

1

0

2

функція

 

3

 

 

4

5

6

Лекція 4

54

Приклад: Вставляння з лінійним зондуванням

Aho, Kruse, Standish, Horowiz, Langsam, Sedgewick, Knuth

хеш-таблиця

Kruse

0 Aho

хеш

 

1

5

2

функція

 

3

 

 

 

 

4

5 Kruse

6

Лекція 4

55

Приклад: Вставляння з лінійним зондуванням

Aho, Kruse, Standish, Horowiz, Langsam, Sedgewick, Knuth

хеш-таблиця

Standish

0 Aho

1 Standish

хеш

1

2

функція

 

3

 

 

 

 

4

5 Kruse

6

Лекція 4

56

Приклад: Вставляння з лінійним зондуванням

Aho, Kruse, Standish, Horowiz, Langsam, Sedgewick, Knuth

хеш-таблиця

Horowitz

0 Aho

1 Standish

хеш

5

2

функція

 

3

 

 

 

 

4

5 Kruse

6 Horowitz

Лекція 4

57

Приклад: Вставляння з лінійним зондуванням

Aho, Kruse, Standish, Horowiz, Langsam, Sedgewick, Knuth

хеш-таблиця

Langsam

 

 

0

Aho

 

 

 

 

1

 

хеш

 

Standish

5

2

Langsam

функція

 

3

 

 

 

 

 

 

4

 

 

 

5

Kruse

6 Horowitz

Лекція 4

58

Подвійне хешування

Інший методі хешування із відкритою адресою.

Подібний до лінійного зондування.

Проте, замість здійснення лінійного пошуку, який перевіряє всі наступні входження елемента від місця де трапилася колізія, здійснює перевірку елементів з фіксованим інкрементом.

Друга хеш-функція використовується для обчислення фіксованого інкремента.

Значення, яке отримується від другої хешфункції, повинне узгоджуватися із розміром хеш-таблиці.

Лекція 4

59

Вставляння з подвійним хешуванням

Обчислити хеш-функцію для отримання позиції.

Постаратися вставити ключ у отриману позицію.

Якщо виникає колізія, тоді обчислити друну хеш-функцію для отримання фіксованого інкремента.

Пройтися по хш-таблиці, використовуючи інкремент, поки не буде

знайдено порожньої позиції.

Лекція 4

60

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]