Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Пособие_СиАОД.doc
Скачиваний:
82
Добавлен:
11.04.2015
Размер:
2.05 Mб
Скачать

Алгоритм на псевдокоде

Пузырьковая сортировка

Обозначим i – номер итерации,

j – индекс правого элемента в текущей паре.

DO (i= 1, 2, ... n-1)

DO (j= n, n-1, ... i+1)

IF (aj < aj-1) aj ↔ aj-1 FI

OD

OD

Проанализируем сложность пузырьковой сортировки. Количество сравнений в методе прямого выбора и в методе пузырьковой сортировки одинаково и не зависит от исходной отсортированности массива. Однако количество пересылок M зависит от того, как часто выполняется условие aj < aj-1. Можно определить максимальное и минимальное значения Мmin  Mсред  Mmax,. где

Мmin = 0, при сортировке упорядоченного по возрастанию массива.

Mmax = 3C = , при сортировке упорядоченного по убыванию массива.

Отсюда следует, что Mсред=О(n2), при n

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

    1. Шейкерная сортировка

Анализируя метод пузырьковой сортировки можно отметить два обстоятельства. Во-первых, если при движении по части массива перестановки не происходят, то эта часть массива уже отсортирована и, следовательно, ее можно исключить из рассмотрения. Во-вторых, при движении от конца массива к началу минимальный элемент «всплывает» на первую позицию, а максимальный элемент сдвигается только на одну позицию вправо. Эти две идеи приводят к следующим модификациям в методе пузырьковой сортировки. Границы рабочей части массива (т.е. части массива, где происходит движение) устанавливаются в месте последнего обмена на каждой итерации. Массив просматривается поочередно справа налево и слева направо.

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

К

У

Р

А

П

О

В

А

А

В

А

О

А

П

А

А

А

Р

А

У

А

К

А

К

У

Р

А

П

О

В

К

У

Р

У

А

У

П

У

О

У

В

У

А

К

Р

А

П

О

В

У

В

О

В

П

А

В

А

Р

А

К

А

А

К

Р

В

П

О

У

К

Р

В

Р

П

Р

О

Р

А

А

К

В

П

О

Р

У

О

П

В

О

В

К

А

А

В

К

О

П

Р

У

К

О

О

П

А

А

В

К

О

П

Р

У

Рисунок 4 Шейкерная сортировка