Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лр+Структуры и алгоритмы с АТД.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
463.87 Кб
Скачать

Результаты тестирования хеш-функции

Размер таблицы

Значения c2

Значения c2

Значения c2

m - sqrt(m)

c2

m + sqrt(m)

10

6

8

10

7

8

13

100

167

159

131

90

152.3

110

1000

1357

1502

1334

969

1397.7

1031

10000

15486

15402

15514

9900

15467.3

10100

Таблица 1. Результаты тестирования хеш-функции.

Рисунок 1. График зависимости критерия c2 от размера таблицы.

Из результатов тестирования видно, что значения c2 для различных размеров таблиц лежат выше ожидаемого значения. Отклонение от ожидаемого значения увеличивается с ростом размера таблицы.

Описание методики тестирования трудоемкости операций

Для тестирования трудоёмкости пользователь должен ввести размер таблицы, коэффициент заполнения и количество повторений основных операций. Далее поочерёдно выполняются все основные операции (вставка, удаление, поиск). Для создания 10% промахов, на каждой 10-ой итерации для удаления и поиска выбирается ключ, которого нет в таблице, для вставки напротив такой ключ, который в таблице уже существует. Для создания промахов используется массив, в котором содержаться все ключи, которые находятся в таблице.

Коэффициент заполнения

Средняя трудоёмкость: Вставка

Средняя трудоёмкость: Поиск

Средняя трудоёмкость: Удаление

1

3

3

3

2

3

3

3

3

4

4

3

4

5

4

4

5

6

4

5

6

7

6

6

7

8

6

6

8

10

6

6

9

10

8

8

Таблица 2. Трудоёмкость основных операций для таблицы с цепочками коллизий.

Рисунок 2. Трудоёмкость основных операций для таблицы с цепочками коллизий.

Коэффициент заполнения

Средняя трудоёмкость: Вставка

Средняя трудоёмкость: Поиск

Средняя трудоёмкость: Удаление

0.1

1

1

1

0.2

1

1

1

0.3

1

2

1

0.4

2

2

1

0.5

3

5

1

0.6

5

5

2

0.7

6

6

2

0.8

16

14

3

0.9

29

20

6

Таблица 3. Трудоёмкость основных операций для таблицы с открытой адресацией.

Описание методики тестирования трудоемкости операций (окончание)

Рисунок 3. Трудоёмкость основных операций для таблицы с открытой адресацией.

Сравнительный анализ теоретических и экспериментальных оценок эффективности операций

Теоретические показатели трудоёмкости приведены в таблице 4. Результаты, полученные практически для таблицы, работающей заданной хеш-функцией, с небольшим отклонением совпадает с теоретическим оценками.

Тип таблицы

Теоретические показатели трудоёмкости: Вставка

Теоретические показатели трудоёмкости: Поиск

Теоретические показатели трудоёмкости: Удаление

Таблица с цепочками коллизий

O(a)

O(a)

O(a)

Таблица с открытой адресацией

1/2(1+1/(1-a))

1/2(1+1/(1-a)^2)

O(1)

Таблица 4. Теоретические показатели трудоемкости.

Из полученных данных можно сделать вывод о том, что хеш-таблица с открытой адресацией наиболее эффективна при коэффициенте заполнения меньше 0.5, в другом случае трудоёмкость достаточно велика. Таблица с цепочками коллизий наиболее эффективна при коэффициенте заполнения равном 5, т.к. при этом значении коэффициента средняя длина списков равна 5.

Выводы

АДТ хеш-таблица является достаточно эффективной структурой поиска. В зависимости от количества ключей хранимых в таблице нужно правильно выбирать тип таблицы. При достаточно большом количестве ключей наибольшую эффективность имеет таблица с цепочками коллизий, при небольшом количестве ключей таблица с прямой адресацией является более эффективной.