Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПособиеСтруктДанн.doc
Скачиваний:
6
Добавлен:
01.03.2025
Размер:
1.51 Mб
Скачать

9.5.1. Анализ трудоемкости операций над рассеянной таблицей

Пусть для хранения таблицы отведено m позиций, и в таблице имеется n записей, тогда =n/m 1 – коэффициент загруженности памяти. Вероятность того, что хеш-адрес попадет в занятую позицию равна , а в свободную 1-. При вставке нам удастся найти место для новой записи:

  • с 1-й попытки с вероятностью 1-,

  • со 2-й попытки – с вероятностью (1-) (первая попытка неудачная, вторая успешная),

  • c 3-й попытки – с вероятностью 2(1-) (две первых неудачны, третья успешна) и т.д.

Математическое ожидание числа попыток N при вставке:

(13)

Выражение является производной по  от суммы геометрической прогрессии , которая может быть вычислена по формуле

(14)

Подставляя производную правой части (14) в (13), получим:

(15)

Для определения среднего числа проб при поиске заметим, что запись будет найдена в точности за столько же проб, сколько потре­бовалось при ее вставке. Каждая запись вставляется при своем значении , так, например, при вставке первой записи =0. Усредняя (14) по , получим:

(16)

Таблица, приведенная ниже, дает представление о среднем числе проб при вставке и поиске.

N()

R()

0,20

1,25

1,12

0,50

2,00

1,39

0,80

5,00

2,01

0,90

10,00

2,56

0,95

20,00

3,15

0,99

100,00

4,65

Как видно из таблицы, не следует рассчитывать на полное использование памяти. Для динамичных таблиц коэффициент загрузки памяти не должен превышать 0,7 – 0,8.

Контрольные вопросы

  1. В чем заключается основное отличие рассеянных таблиц от таблиц с прямым доступом?

  2. Каким требованиям должны удовлетворять первичная и вторичная хеш-функции?

  3. Какие методы разрешения коллизий в рассеянных таблицах вы знаете?

  4. В чем заключается явление скучивания?

  5. Опишите алгоритмы поиска, вставки и удаления для метода открытой адресации.

  6. Дайте оценку трудоёмкости операций поиска и вставки для рассеянной таблицы.

Литература

  1. Вирт Н. Алгоритмы и структуры данных. СПб Невский диалект 2001г. 352 с.

  2. Ахо А., Хопкрофт Д, Ульман Дж.., Структуры данных и алгоритмы СПб Издатель­ский дом "Вильямc", 2000 г.,  384 с.

  3. Мейн М. Савитч У. Структуры данных и другие объекты в C++, 2-е издание. СПб Издательский дом "Вильямс" 2002г. 832 с.

  4. Гудрич М.Т., Тамассия Р. Структуры данных и алгоритмы в Java. СПб Издательский дом "Вильямс" 671 с.

  5. Бакнелл Дж. Фундаментальные алгоритмы и структуры данных в Delphi. М. ДиаСофт. 560 с.

Михаил Юрьевич Катаргин

Александр Григорьевич Комирев

Евгений Михайлович Сартасов

Структуры и алгоритмы обработки данных

Учебное пособие

Редактор В.М.Ройзентул

Подписано в печать 10.08.04

Усл.печ.л. 6,5

Уч.-изд. л. 7,5

Формат 60x84 1/16

Тираж 100 экз.

Заказ № 100

ООП ИПП "Фотохудожник"