Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
математическая логика и теория алгоритмов.doc
Скачиваний:
118
Добавлен:
10.05.2014
Размер:
2.32 Mб
Скачать
        1. Способ работы с таблицей

По организации способа работы таблицы делятся на две группы:

  • статические таблицы, состояние которых фиксировано и не изменяется во времени. Для статических таблиц определена только операция поиска; операции включения/удаления элементов не определены. Для таких таблиц важно минимизировать время поиска, используя соответствующую организацию таблицы;

  • динамические таблицы, состояние которых может меняться во времени; такая таблица является объектом (возможно) частых вставок (и удалений). Для динамических таблиц определены все приведенные выше операции. Для динамических таблиц важно обеспечить достаточно эффективное выполнение каждой из указанных операций.

        1. Способ доступа к таблице

По организации способа доступа таблицы делятся на:

  • просматриваемыетаблицы,

  • упорядоченныетаблицы,

  • таблицы прямого (или произвольного) доступа,

  • перемешанные(хэш) таблицы.

Способ доступа к таблице определяет, как (по какому алгоритму) будет выполняться операция поиска.

Приведенные два критерия являются независимыми и могут быть применены к одной и той же таблице. Таким образом, можно определить разные типы таблиц, например: статическая просматриваемая таблица, динамическая просматриваемая таблица, динамическая перемешанная таблица, и так далее.

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

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

Далее будут подробно рассмотрены все типы таблиц и способы их отображения.

      1. Просматриваемые таблицы

В просматриваемой таблице порядок расположения элементов никак не связан со значениями ключей (рис. II–35). Поэтому поиск элемента по ключу осуществляется обычнымпросмотромвсех элементов таблицы, начиная с первого и до искомого (если он есть в таблице; тогда поиск заканчивается успешно), или до конца таблицы (тогда поиск заканчивается неуспешно).

Ключ

Информация

08

. . .

33

. . .

47

. . .

25

. . .

18

. . .

Рис. II–35

Можно определить длину поиска элемента с ключом ki, находящегося в i-ой позиции таблицы (например, элемент с ключом 47 находится в позиции 3):

S= i.

Очевидно, что для просматриваемой таблицы дольше всего выполняется поиск последнего элемента таблицы; следовательно, максимальная длина поиска

T=n,

где n– размер таблицы.

Вообще говоря, средняя длина поиска будет зависеть от частоты обращения к различным записям. Так, например, если в просматриваемой таблице первая запись требуется гораздо чаще, чем все остальные, то средняя длина поиска будет близка к 1. В соответствии с этим среднюю длину поиска можно определить следующим образом:

D= ipi

где i – порядковый номер записи, а pi– вероятность того, что требуемая запись имеет номер i.

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

Просматриваемая таблица может быть и статической, и динамической; она может быть отображена в памяти и вектором, и списком. Рассмотрим особенности реализации операций для разных способов отображения просматриваемой таблицы.