Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
GOS.pdf
Скачиваний:
172
Добавлен:
11.03.2015
Размер:
6.59 Mб
Скачать

1+2+3+...+(N-2)+(N-1)=(N-1)*N/2, что составляет O(N2).

Чем ближе к отсортированному виду, тем более эффективной становится сортировка простыми вставками. Среднее число сравнений в сортировке простыми вставками также составляет O(N2).

Сортировка Шелла

Сортировка Шелла – это улучшенный метод сортировки вставками. Был предложен Д.Л. Шеллом в 1959 г. Рассмотрим этот метод на примере.

Поскольку первый в сортировке Шелла используемый шаг является большим, отдельные подмассивы достаточно малы по отношению к исходному. Таким образом, сортировка включением над этими подмассивами работает достаточно быстро – O(N2) (эффективно при малом N). Сортировка каждого подмассива приводит к тому, что весь массив становиться ближе к отсортированному виду, что также делает эффективным исполь-зование сортировки включением. Так как массив становится более упорядоченным, то O(N) < порядок ФBC <O(N2).

Если некоторый массив частично отсортирован с использо-ванием шага k, а затем сортируется частично с использованием шага j, то данный массив остается частично отсортированным по шагу k, т.е. последующие частичные сортировки не нарушают результата предыдущих сортировок. Следующий шаг отличается от предыдущего следующим образом: ht=1, hi+1<hi.

Анализ сортировки Шелла

Анализ сортировки Шелла математически сложен. В случае правильного выбора шагов порядок ФВС будет выглядеть как O(N1.2). Д. Кнут предложил выбирать шаги из следующего ряда: 1, 4, 13, 40, 121, … , а вычислять их по следующей формуле: hk–1 = 3* hk +1; ht = 1; t = [log 3 N] – 1 (количество просмотров), где N – размерность исходного массива. Т.е. элементы должны быть взаимно простыми числами. Исходя из этого порядок сортировки может быть аппроксимирован величиной О(N(log 2 N)).

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

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

Алгоритм сортировки выбором

1.Находим наименьший ключ в неупорядоченной части массива.

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

3.Пункты 1 и 2 выполняем, пока в неупорядоченной части имеется более одного элемента.

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

Анализ сортировки простым выбором

При сортировке простым выбором число сравнений ключей не зависит от их начального порядка. На первом просмотре выполняется N-1 сравнение, на втором — N-2 и т.д. Следовательно, общее число сравнений равно (N-1) + (N-2) + (N-3) + ... + 1=N*(N-1)/2, что составляет O(N2). Порядок функции ВС не зависит от упорядоченности сортируемого массива, однако время сортировки упорядоченного массива будет минимальным, т.к. от упорядоченности массива зависит число перестановок элементов.

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