Heap sort ले array बाट binary heap बनाउँछ, त्यसपछि बारम्बार अधिकतम निकाल्छ र क्रमबद्ध क्रम उत्पादन गर्छ। यो O(n log n) मा चल्छ र in-place हो।
विचार
Max-heap ले सबैभन्दा ठूलो तत्व root मा राख्छ। Heap बनाउनुहोस् (O(n)), त्यसपछि root लाई अन्तमा स्वैप गर्नुहोस्, heap सिकुड गर्नुहोस्, र re-heapify (sift down) गर्नुहोस् — n पटक।
उदाहरण
heapq
():
heapq.heapify(arr)
[heapq.heappop(arr)
_ ((arr))]
heap_sort([, , , , ])
