Heap sort अॅरे पासून binary heap तयार करते, नंतर क्रमवारीत क्रमाची निर्मिती करण्यासाठी जास्तीत जास्त वारंवार काढून घेते. हे O(n log n) मध्ये चालते आणि in-place आहे.
कल्पना
Max-heap मूळ येथे सर्वात मोठा घटक ठेवते. Heap तयार करा (O(n)), नंतर मूळ शेवटी स्वॅप करा, heap संकुचित करा, आणि पुन्हा-heapify करा (sift down) — n वेळा.
उदाहरण
heapq
():
heapq.heapify(arr)
[heapq.heappop(arr)
_ ((arr))]
heap_sort([, , , , ])
