হিপ সর্ট মূলত একটি কম্প্যারিজন-ভিত্তিক সর্টিং অ্যালগরিদম। এটিকে উন্নত সিলেকশন সর্ট মনে করা যায় - সেটিও ইনপুটকে সর্টেড এবং আনসর্টেড অঞ্চলে ভাগ করে, এবং ইন্টারেক্টিভলি আনসর্টেড অঞ্চলটি ছোট করে টার্গেট (সর্বোচ্চ বা সর্বনিম্ন) এলিমেন্ট বের করে সর্টেড অঞ্চলে সরিয়ে দিয়ে।
উদাহরণ
এটির কোড হবে:
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 ]