Yükleniyor // RUNTIME_INITIALIZINGAlgoritma ve bileşen ağacı hazırlanıyor...
Heap Sort, ikili yığın (Binary Heap) veri yapısını kullanan, karşılaştırma tabanlı bir sıralama algoritmasıdır. J. W. J. Williams tarafından 1964 yılında geliştirilmiştir. ## Çalışma Prensibi: 1. **Max-Heap Oluşturma**: Verilen diziden bir max-heap inşa edilir. 2. **Kökü Çıkarma**: En büyük eleman (kök), dizinin son elemanıyla takas edilir. 3. **Heapify**: Yığın boyutu 1 azaltılır ve bozulan max-heap özelliği düzeltilir. 4. **Tekrar**: Tüm elemanlar sıralanana kadar bu işlem devam eder.
1function heapSort(arr) {2 const result = [...arr];3 const n = result.length;4 5 for (let i = Math.floor(n / 2) - 1; i >= 0; i--) {6 heapify(result, n, i);7 }8 9 for (let i = n - 1; i > 0; i--) {10 [result[0], result[i]] = [result[i], result[0]];11 heapify(result, i, 0);12 }13 14 return result;15}1617function heapify(arr, n, i) {18 let largest = i;19 const left = 2 * i + 1;20 const right = 2 * i + 2;21 22 if (left < n && arr[left] > arr[largest]) {23 largest = left;24 }25 26 if (right < n && arr[right] > arr[largest]) {27 largest = right;28 }29 30 if (largest !== i) {31 [arr[i], arr[largest]] = [arr[largest], arr[i]];32 heapify(arr, n, largest);33 }34}Verdiğiniz dizi Heap Sort ile sıralanacaktır.
Heap Sort her durumda O(n log n) karmaşıklık garantisi ve O(1) yardımcı bellek sağlar.