- •Сортировка выбором
- •Описание алгоритма
- •Устойчивость сортировки
- •Функция временной сложности и её асимптотическая оценка
- •Функция пространственной сложности и её асимптотическая оценка
- •График функции временной сложности для всех случаев
- •Сортировка вставками
- •1) Описание алгоритма
- •Устойчивость сортировки
- •Функция временной сложности и её асимптотическая оценка
- •Функция пространственной сложности и её асимптотическая оценка
- •График функции временной сложности для разных случаев
- •Сортировка пузырьком
- •1) Описание алгоритма
- •Устойчивость сортировки
- •Функция временной сложности и её асимптотическая оценка
- •Функция пространственной сложности и её асимптотическая оценка
- •График функции временной сложности для разных случаев
- •Сортировка слиянием
- •Описание алгоритма
- •Устойчивость сортировки
- •Функция временной сложности и её асимптотическая оценка
- •Функция пространственной сложности и её асимптотическая оценка
- •График функции временной сложности для разных случаев
- •Сортировка шелла (последовательность хиббарда, пратта)
- •Описание алгоритма
- •Устойчивость сортировки
- •Функция временной сложности и её асимптотическая оценка
- •Функция пространственной сложности и её асимптотическая оценка
- •График функции временной сложности для всех случаев
- •Последовательность хиббарда
- •Описание алгоритма
- •Последовательность пратта
- •Описание алгоритма
- •Лучший случай:
- •2. Средний случай:
- •3. Худший случай:
- •Быстрая сортировка
- •Описание алгоритма
- •Устойчивость сортировки
- •Функция временной сложности и её асимптотическая оценка
- •Функция пространственной сложности и её асимптотическая оценка
- •График функции временной сложности для разных случаев
- •Пирамидальная сортировка
- •Описание алгоритма
- •Практическая часть
- •Сортировка выбором
- •Сортировка вставками
- •Сортировка пузырьком
- •Сортировка слиянием
- •Сортировка шелла
- •Последовательность хиббарда
- •Последовательность пратта
- •Быстрая сортировка
- •Пирамидальная сортировка
Устойчивость сортировки
Неустойчивая. В процессе сортировки элементы могут перемещаться на значительные расстояния, что может привести к тому, что два равных элемента поменяются местами. Сортировка вставками, на которой основана сортировка Шелла, также является неустойчивой. Когда элементы сравниваются и перемещаются, порядок равных элементов может измениться.
Функция временной сложности и её асимптотическая оценка
Лучший
случай:
Средний
случай:
Худший случай:
Функция пространственной сложности и её асимптотическая оценка
Сортировка Шелла работает на месте и использует лишь несколько дополнительных переменных, поэтому пространственная сложность данного алгоритма:
График функции временной сложности для всех случаев
Рисунок 5.3 - Временная сложность сортировки Шелла в трех случаях.
Последовательность хиббарда
Описание алгоритма
Сортировка
с использованием последовательности
Хиббарда — это метод сортировки, который
является улучшенной версией сортировки
Шелла. Она использует специальную
последовательность интервалов для
более эффективной сортировки элементов.
Последовательность
Хиббарда формируется по следующему
принципу:
каждое
число в последовательности представляет
собой значение, полученное по формуле:
где k
— неотрицательное целое число.
Таким
образом, последовательность Хиббарда:
1,3,7,15,31,63,127,…
Устойчивость сортировки
Неустойчивая: в процессе сортировки элементы могут перемещаться на большие расстояния, что может привести к изменению порядка равных элементов.
Асимптотическая оценка временной сложности
Лучший
случай:
Средний
случай:
Худший случай:
Асимтотическая лценка пространственной сложности
Последовательность Хиббарда работает на месте и использует лишь несколько дополнительных переменных, поэтому пространственная сложность данного алгоритма:
Графики функции временной сложности для разных случаев
Рисунок 1.6 - Временная сложность сортировки с последовательностью Хиббарда в трех случаях.
Последовательность пратта
Описание алгоритма
Сортировка
с использованием последовательности
Пратта — это алгоритм сортировки,
который является улучшенной версией
сортировки Шелла. Он использует
специальные последовательности
интервалов для более эффективной
сортировки. Последовательность
Пратта формируется по следующему
принципу:
она
включает все числа, которые могут быть
записаны в виде
,
где i
и j
— неотрицательные целые числа.
Пример
последовательности Пратта:
1,
2,
3,
4,
6,
8,
9,
12,
16,
18,
24,
27,
32,
36,
48,
54,
72,
81,
96,
108,
144,
162,
216,…
Устойчивость сортировки
Неустойчивая: в процессе сортировки элементы могут перемещаться на большие расстояния, что может привести к изменению порядка равных элементов.
Асимптотическая оценка временной сложности
Последовательность Пратта работает на месте и использует лишь несколько дополнительных переменных, поэтому пространственная сложность данного алгоритма:
Асимптотическая оценка временной сложности
