TURBO PASCAL

Новости           

Программы

Turbo Pascal

Игры

Документация

"Странности"

FAQ

Ссылки

Благодарности

Гостевая книга

От автора

Оценка алгоритмов сортировки 

Для каждого метода сортировки имеется много алгоритмов. Каж- дый алгоритм имеет свои достоинства, но в целом оценка алгоритма сортировки зависит от ответов, которые будут получены на следую- щие вопросы: - с какой средней скоростью этот алгоритм сортирует информа- цию?; - какова скорость для лучшего случая и для худшего случсая?; - поведение алгоритма является естественным или является не- естественным?; - выполняется ли перестановка элементов для одинаковых клю- чей? Для конкретного алгоритма большое значение имеет скорость сортировки. Скорость, с которой массив может быть упорядочен, прямо зависит от числа сравнений и числа необходимых операций об- мена, причем операции обмена занимают большее время. Ниже в этой главе будет показано, что для некоторых алгоритмов время сорти- ровки зависит экспоненциально от числа элементов, а для других алгоритмов это время находится в логарифмической зависимости от числа элементов сортировки. 

Время работы алгоритма для лучшего и худшего случаев важно учитывать, когда ожидается их частое появление. Часто сортировка имеет хорошую среднюю скорость, но очень плохую скорость для худ- шего случая, и наоборот.

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

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

В следующих разделах приводятся алгоритмы сортировки каждого класса и анализируется их эффективность. Каждая программа сорти- ровки использует два типа данных, определенных пользователем, ко- торые определяются следующим образом:

type
DataItem = char;
DataArray = array [1..80] of DataItem;
Следовательно, для изменения используемых в сортировках ти- пов данных требуется изменить только эти два определения типов. Размерность массива выбрана произвольно и вы можете при необходи- мости их изменить.

(с)Все права защищены

По всем интересующим вопросампрошу писать на электронный адрес

    Rambler's Top100 PROext: Top 1000
    Rambler's Top100 Яндекс цитирования
Hosted by uCoz