Изменения

Перейти к: навигация, поиск

Сортировка кучей

6 байт добавлено, 18:09, 1 июня 2014
его -> массив
'''JSort''' является модификацией сортировки кучей, которую придумал Джейсон Моррисон (''Jason Morrison'').
Если построить на массиве последовательно 2 кучи (невозрастающую и неубывающую), это значительно упорядочит его.
Досортировав его массив [[Сортировка вставками|сортировкой вставками]], можно получить временную сложность <tex>O(n)</tex> в лучшем случае.
=== Алгоритм ===
Необходимо отсортировать массив. Построим невозрастающую кучу на этом массиве.
Тогда наименьший элемент окажется на первой позиции, а левая часть массива окажется почти отсортированной, так как ей будут соответствовать верхние узлы кучи.
Теперь построим на этом же массиве кучу так, чтобы немного упорядочить правую часть массива. Эта куча должна быть неубывающей и быть "зеркальной" к массиву, то есть чтобы ее корень соответствовал последнему элементу массива.
Анонимный участник

Навигация