Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы на вопросы по информатике.doc
Скачиваний:
101
Добавлен:
10.05.2014
Размер:
594.94 Кб
Скачать

Критерии Эффективности

Единственного эффективнейшего алгоритма сортировки нет, ввиду множества параметров оценки эффективности:

Время— основной параметр, характеризующий быстродействие алгоритма. Называется также вычислительной сложностью. Для упорядочения важны худшее, среднее и лучшее поведение алгоритма в терминах размера списка (n). Для типичного алгоритма хорошее поведение — это O(n log n) и плохое поведение — это O(n²). Идеальное поведение для упорядочения — O(n). Алгоритмы сортировки, использующие только абстрактную операцию сравнения ключей всегда нуждаются по меньшей мере в O(n log n) сравнениях в среднем;

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

Устойчивость (stability)— устойчивая сортировка не меняет взаимного расположения равных элементов.

Естественность поведения— эффективность метода при обработке уже упорядоченных, или частично упорядоченных данных. Алгоритм ведёт себя естественно, если учитывает эту характеристику входной последовательности и работает лучше.

Данные нам методы сортировки удобно поместить в сводную таблицу

(Warning! Таблица не проверена. Там где стоят знаки вопроса, значение под сомнением!)

(BrutalScorp-respect for the table)

Вид сортировки

Быстродействие

Память

Устойчивось

Естественность

Краткое описание

Быстрая

O(n*log(n))

требует

неустойчив

естественный

выбираем опорный элемент Ак. Затем эл-ты меньше Ак переносим влево, большие вправо. Затем обе части обрабатываем аналогично

Выбором

O(n^2)

не требует

неустойчив

неестественный

строим массив из "правильных эл-тов" слева-направо. после каждого прохода неотсортированный участок уменьшается

Пузырьком

O(n^2)

не требует

устойчив

Неестественный, (естественный только у модифицир.)

С каждым перебором массива “легкий” эл-т поднимается выше. Производится до тех пор пока не всплывут все

Слиянием

O(n*log(n))

требует

устойчив

Естественный

Разбивка и сортировка сначала по 2 эл-та, затем 4, 8, 16…

Вставками

O(n^2)

не требует

устойчив

Естественный

“просеивание” элемента в отсортированный участок

Шелла

O(n*log(n)) или n^12

?не требует?

неустойчив

?Естественный?

Сортируется сначала каждый 8, затем каждый 4, 2. (разбиваются на пары через 8,4,2)

Поразрядная

O(n*log(n))

требует(?)

устойчив

неестественный

Выстраивание эл-тов по карманам старших разрядов, затем младших

Теперь можно заняться подробным описанием алгоритмов с примерами.

Сортировка выбором

Сортировка выбором (англ. selection sort) — алгоритм сортировки, относящийся к неустойчивым алгоритмам сортировки. На массиве из n элементов имеет время выполнения в худшем, среднем и лучшем случае Θ(n2), предполагая что сравнения делаются за постоянное время.

Шаги алгоритма:

  1. находим минимальное значение в текущем списке

  2. производим обмен этого значения со значением на первой позиции

  3. теперь сортируем хвост списка, исключив из рассмотрения уже отсортированный первый элемент

for i := 1 to n - 1 do

begin

min := i;

for j := i + 1 to n do

if a[min] > a[j] then

min := j;

t := a[i];

a[i] := a[min];

a[min] := t

end;

Соседние файлы в предмете Информатика