Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Tema5.doc
Скачиваний:
7
Добавлен:
25.03.2016
Размер:
84.99 Кб
Скачать

1 2 I м

Номера записей

Рис. 3.1. Последовательная организация данных

Ключевые атрибуты в записях обозначаются через p(i), где i - номер записи, общее число записей в массиве обозначается через М.

8. Записи массива могут быть упорядоченными или неупорядоченными по значениям ключевого атрибута (ключа), имя которого одинаково во всех записях. Ключевой атрибут обычно является атрибутом-признаком. Часто требуется поддерживать упорядоченность записей по нескольким именам ключевых признаков. В этом случае среди признаков устанавливается старшинство. Условие упорядоченности записей в массиве (и вообще для линейной организации данных) выглядит следующим образом:

р (i) < = р (i + 1) - упорядоченность по возрастанию;

p(i) >= р(i+1) - упорядоченность по убыванию.

Наиболее важными и часто применяемыми алгоритмами обработки данных являются формирование данных, их поиск и корректировка, а также последовательная обработка. Эти алгоритмы могут быть реализованы с использованием достаточно большого количества методов организации данных. Здесь мы рассмотрим выбор наилучшего метода организации данных для названных алгоритмов. Сами методы организации данных будут представлены в их простейшей форме, а уточнения, рассчитанные на данные большого объема на внешних запоминающих устройствах, как это характерно для СУБД и пакетов прикладных программ, приводятся в 3 вопросе.

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

Упорядоченные данные эффективны для организации быстрого поиска информации. Выходные документы, выводимые на печать, полученные на основе отсортированных данных, удобны для дальнейшего использования человеком. Многие алгоритмы задач управления вообще рассчитаны на использование только упорядоченных данных. Отсортированные данные позволяют организовать быструю обработку нескольких массивов. Далее будем считать все массивы упорядоченными по возрастанию значений одного атрибута, когда для ключа i-й записи p(i) справедливо условие p(i)<=p(i+l).

10. Критерии эффективности алгоритмов

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

  • время формирования данных, т. е. время создания в памяти ЭВМ так или иначе упорядоченного представления данных (упорядочение способно ускорить выполнение алгоритмов поиска данных);

  • время поиска данных. Как известно, условия поиска (выборки) на практике могут быть достаточно разнообразные. Анализируется обычно простейший и наиболее распространенный случай (поиск по совпадению) - найти записи, у которых значение ключевого атрибута равно заранее известной величине q;

  • время корректировки данных. Из всех возможных вариантов корректировки учитывается включение или исключение одной записи;

  • объем дополнительной памяти, расходуемой под служебную информацию (например, адреса связи).

На время выполнения алгоритмов влияет, однако, ряд факторов, которые не хотелось бы рассматривать при теоретическом анализе алгоритмов. Среди них - быстродействие конкретной ЭВМ, применяемый язык программирования, стиль программирования конкретного программиста. Чтобы можно было не принимать во внимание подобные факторы, целесообразно анализировать не время, а количество выполняемых элементарных операций, в частности операций сравнения значений ключевых атрибутов и искомых величин. Время выполнения алгоритма обычно прямо пропорционально числу требуемых сравнений, и подобная замена критерия эффективности алгоритма вполне законна.

11. При анализе алгоритмов необходим еще ряд допущений, обеспечивающих использование равномерного распределения вероятностей для всех случайных величин, описывающих работу алгоритма, в том числе:

  • распределение значений ключевых атрибутов в массиве из М записей - равномерное;

  • значение q при поиске по совпадению выбрано случайно: это означает, что поиск с одинаковой вероятностью 1/М может закончиться на любой записи массива;

  • положение включаемой (исключаемой) записи при корректировке определяется теми же вероятностями, что и при поиске.

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

12. Массив, обладающий наибольшей неопределенностью своего состояния, будем называть случайным массивом. Все его М! состояний равновозможны. Через М! обозначено произведение 1-2-...М.

Таким образом, минимальное число сравнений, необходимое для упорядочения массива из М записей, определяется как

С = log M!,

что соответствует минимально возможному числу вопросов о состоянии массива с возможными ответами типа: да - нет. Условимся, что функция log обозначает логарифм по основанию 2.

13. После преобразований по формуле Стерлинга получаем:

С=М * (logM-1,43).

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

Соответствующее преобразование выглядит как С ~ М • log M (читается: С пропорционально М • logM). Значением коэффициента пропорциональности в этом контексте мы интересоваться не будем. Разумеется, справедлива запись выражения для времени сортировки Т ~ М • log M.

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