Heap sort აგებს ორობითი heap-ს მასივიდან, შემდეგ განმეორებით იღებს მაქსიმუმს დასალაგებელი თანმიმდევრობის წამოსახდებად. ის მუშაობს O(n log n) დროში და არის in-place.
აზრი
Max-heap ინახავს ყველაზე დიდ ელემენტს root-ში. აირჩიე heap (O(n)), შემდეგ შეცვალე root ბოლოში, შეამცირე heap და გადააკეთე-heapify (sift down) — n ჯერ.
მაგალითი
heapq
():
heapq.heapify(arr)
[heapq.heappop(arr)
_ ((arr))]
heap_sort([, , , , ])
