

40. Турнирная сортировка.
Этот метод сортировки получил свое название из-за сходства с кубковой системой проведения спортивных соревнований: участники соревнований разбиваются на пары, в которых разыгрывается первый тур; из победителей первого тура составляются пары для розыгрыша второго тура и т.д. Алгоритм сортировки состоит из двух этапов. На первом этапе строится дерево: аналогичное схеме розыгрыша кубка.
Например, для последовательности чисел a:
16 21 8 14 26 94 30 1
такое дерево будет иметь вид пирамиды, показанной на рисунке:
В примере приведена программная иллюстрация алгоритма турнирной сортировки.
Алгоритм:
Строится двоичное дерево (глубина 2к≥n) сортируемых ключей: 1.все ключи листья
2.из пар выбирается мин и становится узлом порядка k-1, процесс продолжается пока корнем дерева не станет мин эл-т 3.переправляем этот эл-т в исходную последовательность
4.спускаемся по дереву и заменяем значения мин элемента на + 5.все промежуточные узлы заменяем минимальными из оставшихся.
6.процесс продолжается до тех пор пока все листья не будут заменены фиктивными ключами Число сравнений (n-1)log2n: время работы O(log2n)