Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Сравнение методов организации таблиц




 

В малых таблицах средняя длина поиска приблизительно одинакова для всех методов (табл. 5.1, столбец m=8).

Поэтому для малого числа элементов предпочтительнее линейные таблицы (алгоритм проще, быстрее по времени). Для удаления элементов удобнее списки.

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

 

Таблица 5.1

Сравнение таблиц по длине поиска

Вид таблицы Средняя длина поиска (m – количество элементов)
  Формула для Dср m = 8 m = 64 m= 1024
Линейная m / 2      
Древовидная 1.39 log2 m 4.2 8.4 13.9
Перемешанная при N=1.25 m, s=0.8 (2-s) / (2-2*s) Dср = 3      

 

В хеш-таблицах мала средняя длина поиска, но максимальная длина поиска в наихудшем случае велика - равна m. Поэтому они могут оказаться неприемлемыми и в особо ответственных системах, например, для управления транспортом. Сбалансированные деревья дают гарантии достаточно быстрого поиска и в наихудшем случае.

Граница между малыми и большими таблицами зависит от ЭВМ, длины ключа и других факторов и соответствует обычно значению m от 30 до 80.

 

Упражнения и задачи

 

5.1. Составить полные программы по алгоритмам, приведенным в примерах 5.1, 5.2.

 

5.2. Составить фрагменты программ поиска без использования барьера для линейных таблиц в виде вектора и списка и древовидных таблиц.

 

5.3. Оформить приведенные в разделе 5 операции над таблицами в виде подпрограмм.

 

5.4. Написать программу подсчета количества повторений в данном тексте каждой цифры: 0, 1,..., 9.

5.5. В пустую таблицу поступают ключи в следующем порядке: МГУ, ЛГУ, КАИ, ТГУ, КГПУ, ТПИ, НГТУ. Изобразить результирующее дерево поиска и представление в памяти этого дерева с помощью параллельных массивов. Является ли полученное дерево выровненным, АВЛ-деревом? Указать последовательность ключей при обходе этого дерева сверху, слева направо и снизу (см. раздел 4). Как изменится таблица после удаления ключа ЛГУ?

 

5.6. В пустую таблицу поступают ключи в следующем порядке: МГУ, ЛГУ, КАИ, ТГУ, КГПУ, ТПИ, НГТУ. Для хеш-таблицы с открытым перемешиванием показать содержимое отображающего вектора (расстановочного поля), если его длина равна 9, шаг перемешивания равен 2. Хеш-функция определена таблично:

 

Ключ КАИ КГПУ ЛГУ МГУ НГТУ ТГУ ТПИ
Значение хеш-функции              

 

Как изменится таблица после удаления ключа ЛГУ?

 

 

5.7. Древовидная таблица содержит ключи (в порядке поступления): МГУ, ЛГУ, КАИ, ТГУ, КГПУ, ТПИ, НГТУ. Найти среднюю длину поиска для дерева полученной конфигурации, считая, что вероятности поиска всех ключей одинаковы и равны 0.1, а вероятность безуспешного поиска (отсутствующего ключа) равна 0.3. Считать, что безуспешный поиск с равной вероятностью заканчивается в любой из пустых ссылок.

Для сравнения оценить длину поиска в таблице в среднем по всем конфигурациям дерева, считая их равновероятными, по общей формуле:

древ

Dср = 1.39 log2 m,

 

где m - количество элементов таблицы.

 

5.8. Таблица содержит ключи (в порядке поступления): МГУ, ЛГУ, КАИ, ТГУ, КГПУ, ТПИ, НГТУ.

Даны вероятности:

- безуспешного поиска - 0.1;

- поиска ключей: КАИ - 0.3, КГПУ - 0.1, ЛГУ - 0.1,

МГУ - 0.15, НГТУ - 0.1, ТГУ - 0.1, ТПИ - 0.05.

Найти среднюю длину поиска для разных методов организации таблиц:

1) линейная таблица с расположением ключей в порядке их поступления;

2) линейная таблица с расположением ключей в лексикографическом порядке (как в словарях);

3) линейная таблица с расположением ключей в порядке убывания вероятностей их поиска;

4) древовидная таблица с расположением ключей в порядке их поступления;

5) перемешанная таблица из задачи 4.3 (рис. 4.2а);

6) перемешанная таблица из 7 элементов с расстановочным полем длиной 9 и равномерно распределенной функцией расстановки (как на рис. 4.2а, только без учета конкретных ключей и их вероятностей).

 

5.9. Составить фрагменты программы (подпрограммы) включения и исключения элемента в упорядоченной по возрастанию ключей линейной таблице в виде вектора. Ключ элемента - вещественное число.

 

5.10. Составить фрагменты программы (подпрограммы) инициализации и поиска с включением в древовидной таблице без использования барьера для представления дерева

а) ссылочными данными;

б) параллельными массивами.

 

5.11. Для перемешанной таблицы cоставить фрагменты программы (подпрограммы)

а) поиска с включением открытым перемешиванием с квадратичным рехешированием;

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

 

5.12. Для перемешанной таблицы длиной n = 2k cоставить подпрограмму вычисления индекса p повторного перемешивания, используя псевдослучайное число r с начальным значением 1, по следующему методу:

r = младшие к+2 бита 5*r;

p = r, сдвинутое на 2 бита вправо.

 

5.13. Оценить необходимый объем памяти для организации таблиц в задачах: 5.4 - 5.6, 5.8 - 5.11. Недостающие детали представления уточнить самостоятельно.





Поделиться с друзьями:


Дата добавления: 2016-12-18; Мы поможем в написании ваших работ!; просмотров: 324 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Если вы думаете, что на что-то способны, вы правы; если думаете, что у вас ничего не получится - вы тоже правы. © Генри Форд
==> читать все изречения...

2282 - | 2212 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.009 с.