Similar presentations:
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. Если пирамида имеет