हीप सॉर्ट मूल रूप से एक तुलना-आधारित सॉर्टिंग एल्गोरिदम है। इसे चयन सॉर्ट के एक बेहतर संस्करण के रूप में माना जा सकता है − उस एल्गोरिदम की तरह, यह अपने इनपुट को एक सॉर्टेड और एक अनसॉर्टेड क्षेत्र में विभाजित करता है, और यह लक्ष्य (सबसे बड़ा या सबसे छोटा) तत्व को निकालकर और उसे सॉर्टेड क्षेत्र में ले जाकर अनसॉर्टेड क्षेत्र को इंटरएक्टिव रूप से सिकोड़ता है।
उदाहरण
इसके लिए कोड होगा −
const constructHeap = (arr, ind) => { let left = 2 * ind + 1; let right = 2 * ind + 2; let max = ind; if (left < len && arr[left] > arr[max]) { max = left; } if (right < len && arr[right] > arr[max]) { max = right; } if (max != ind) { swap(arr, ind, max); constructHeap(arr, max); } } function swap(arr, index_A, index_B) { let temp = arr[index_A]; arr[index_A] = arr[index_B]; arr[index_B] = temp; } function heapSort(arr) { len = arr.length; for (let ind = Math.floor(len / 2); ind >= 0; ind -= 1) { constructHeap(arr, ind); } for (ind = arr.length - 1; ind > 0; ind--) { swap(arr, 0, ind); len--; constructHeap(arr, 0); } } const arr = [3, 0, 2, 5, -1, 4, 1]; heapSort(arr); console.log(arr); var len;आउटपुट
और कंसोल में आउटपुट होगा −
[ -1, 0, 1, 2, 3, 4, 5 ]