
- •Сортировка выбором
- •Описание алгоритма
- •Устойчивость сортировки
- •Функция временной сложности и её асимптотическая оценка
- •Функция пространственной сложности и её асимптотическая оценка
- •График функции временной сложности для всех случаев
- •Сортировка вставками
- •1) Описание алгоритма
- •Устойчивость сортировки
- •Функция временной сложности и её асимптотическая оценка
- •Функция пространственной сложности и её асимптотическая оценка
- •График функции временной сложности для разных случаев
- •Сортировка пузырьком
- •1) Описание алгоритма
- •Устойчивость сортировки
- •Функция временной сложности и её асимптотическая оценка
- •Функция пространственной сложности и её асимптотическая оценка
- •График функции временной сложности для разных случаев
- •Сортировка слиянием
- •Описание алгоритма
- •Устойчивость сортировки
- •Функция временной сложности и её асимптотическая оценка
- •Функция пространственной сложности и её асимптотическая оценка
- •График функции временной сложности для разных случаев
- •Сортировка шелла (последовательность хиббарда, пратта)
- •Описание алгоритма
- •Устойчивость сортировки
- •Функция временной сложности и её асимптотическая оценка
- •Функция пространственной сложности и её асимптотическая оценка
- •График функции временной сложности для всех случаев
- •Последовательность хиббарда
- •Описание алгоритма
- •Последовательность пратта
- •Описание алгоритма
- •Лучший случай:
- •2. Средний случай:
- •3. Худший случай:
- •Быстрая сортировка
- •Описание алгоритма
- •Устойчивость сортировки
- •Функция временной сложности и её асимптотическая оценка
- •Функция пространственной сложности и её асимптотическая оценка
- •График функции временной сложности для разных случаев
- •Пирамидальная сортировка
- •Описание алгоритма
- •Практическая часть
- •Сортировка выбором
- •Сортировка вставками
- •Сортировка пузырьком
- •Сортировка слиянием
- •Сортировка шелла
- •Последовательность хиббарда
- •Последовательность пратта
- •Быстрая сортировка
- •Пирамидальная сортировка
Быстрая сортировка
Для экспериментальной оценки временной сложности массива быстрой сортировкой было сделано 16 измерений для массивов длиной от 0 до 15000 элементов с шагом в 1000 (Таблица 2.8).
Таблица 2.15 - Экспериментальные значения для быстрой сортировки
Длина массива |
Случайный |
Отсортированный |
Отсортирован поо убыванию |
Отсортирован на 90% |
0 |
0.0 |
0.0 |
0.0 |
0.0 |
1000 |
0,001 |
0,001 |
0,001 |
0,000 |
2000 |
0,002 |
0,001 |
0,001 |
0,001 |
3000 |
0,003 |
0,002 |
0,003 |
0,002 |
4000 |
0,005 |
0,003 |
0,002 |
0,003 |
5000 |
0,006 |
0,004 |
0,004 |
0,003 |
6000 |
0,007 |
0,005 |
0,004 |
0,005 |
7000 |
0,008 |
0,006 |
0,005 |
0,006 |
8000 |
0,010 |
0,006 |
0,006 |
0,007 |
9000 |
0,012 |
0,007 |
0,006 |
0,007 |
10000 |
0,012 |
0,009 |
0,008 |
0,008 |
11000 |
0,014 |
0,009 |
0,009 |
0,009 |
12000 |
0,015 |
0,010 |
0,009 |
0,010 |
13000 |
0,018 |
0,011 |
0,010 |
0,011 |
14000 |
0,019 |
0,012 |
0,012 |
0,014 |
15000 |
0,001 |
0,001 |
0,001 |
0,000 |
Рисунок 2.22 - График временной сложности быстрой сортировки с экспериментальными значениями.
Рисунок 2.23 - График экспериментальных значений с регрессионной кривой для быстрой сортировки.
Рисунок 2.24 - График временной сложности.
Таблица 2.16 - Коэффициенты моделей для быстрой сортировки.
Случай |
Модель |
Коэффициенты |
||
|
|
|
||
Случайный |
|
|
|
|
Лучший |
|
|
|
|
Худший |
|
|
|
|
Почти отсортирован |
|
|
|
|
Сравнив графики, мы видим логарифмическое возрастание для всех случаев. При этом заметим, что случайный массив обрабатывается дольше остальных, что не соответствует графику из теоретической части. Это можно объяснить тем, что во время сортировки в лучших случаях (полностью отсортированный, на 90 %) и в случае с массивом, отсортированным в обратную сторону, во время разделения элементы в основном попадают на нужные места, поэтому сортировка происходит быстрее, чем в случае со случайным массивом.