Алгоритмы и структуры данных
Пирамидальная сортировка
Пирамидальная сортировка
Пирамидальная сортировка
Свойства пирамиды (бинарной кучи)
Свойства пирамиды (бинарной кучи)
Идея сортировки
Построение пирамиды
Трудоемкость построения пирамиды
Трудоемкость построения пирамиды
Функция просеивания в пирамиде
Функция просеивания в пирамиде
Алгоритм пирамидальной сортировки
Бинарная куча
Быстрая сортировка (Хоар)
Быстрая сортировка
Быстрая сортировка
Быстрая сортировка
Быстрая сортировка: трудоемкость в среднем
Трудоемкость в среднем: доказательство
Трудоемкость в среднем: доказательство
Трудоемкость в среднем: доказательство
Разделение массива: 1-й способ
Разделение массива: 1-й способ
Разделение массива: 1-й способ
Разделение массива: 2-й способ
Быстрая сортировка с 2 рекурсивными вызовами
Быстрая сортировка с 1 рекурсивным вызовом
Быстрая сортировка с 1 рекурсивным вызовом
Быстрая сортировка с 1 рекурсивным вызовом
Быстрая сортировка с 1 рекурсивным вызовом
Свойства алгоритмов сортировки
Свойства алгоритмов сортировки
1.77M

04_2 Эффективные алгоритмы сортировки 2

1. Алгоритмы и структуры данных

Эффективные алгоритмы
сортировки. Часть 2
1

2. Пирамидальная сортировка

Пирамидальную сортировку можно считать модификацией
сортировки прямым выбором: на каждом ее проходе
выделяется текущий максимальный элемент, который
ставится на свою позицию в упорядоченном массиве.
Для быстрого выделения очередного максимального
элемента в алгоритме строится вспомогательная
структура данных - пирамида (бинарная куча), которую
можно представить в виде бинарного дерева:
• каждой вершине соответствует элемент массива
• каждая вершина имеет не более двух вершин-сыновей
• заполнены все уровни, кроме, возможно, последнего
• значение-отец всегда не меньше значений-сыновей.
2

3. Пирамидальная сортировка

Пример представления бинарной кучи в виде дерева:
9
/
\
8
/ \
5
3
/ \ / \ /
0 2 3 1 0
6
/ \
1 4
В соответствии с условием пирамиды
элемент находится в корне дерева.
максимальный
3

4. Пирамидальная сортировка

Если в корневую вершину поместить значение v, которое
нарушает условие, то восстановить структуру можно с
помощью просеивания в пирамиде: v меняется с бóльшим
из сыновей, и процесс продолжается, пока v не встанет на
свое место.
2
/
8
\
8
/ \
5
3
/ \ / \ /
0 2 3 1 0
/
6
/ \
1 4
=>
2
/ \
5
3
/ \ / \ /
0 2 3 1 0
8
\
6
/ \
1 4
/
\
5
/ \
6
=>
/ \
2 3
1 4
/ \ / \ /
0 2 3 1 0
4

5. Свойства пирамиды (бинарной кучи)

1. В корне
элемент.
пирамиды
располагается
максимальный
2. Если пирамида имеет
English     Русский Rules