Javascript

Javascript Heap Sort Algoritması

Herkese merhaba, Javascript yazılarımıza kaldığımız yerden devam ediyoruz. Bu yazımızda sıralama algoritmalarından biri olan heap sort algoritmasını anlatacağım. Hadi başlayalım !

Heap Sort Algoritması

JavaScript, verileri sıralamak için birçok algoritma sunar ve Heap Sort, bu algoritmalar arasında en etkili olanlarından biridir. Heap Sort, bir dizi elemanını sıralamak için kullanılan bir sıralama algoritmasıdır. Bu algoritma, bir dizi elemanını bir “heap” veri yapısına dönüştürerek çalışır.

Heap, bir tamamen dolu ağaç yapısıdır ve her bir düğümü, bir düğümün çocuklarından daha küçük veya daha büyük olacak şekilde sıralar. Bu, bir heap ağacındaki en üst düğümün (kök düğümü) her zaman en küçük veya en büyük eleman olacağı anlamına gelir. Bu özelliği sayesinde Heap Sort, en kötü durumda bile O(n*logn) performans sağlar.

Javascript Heap Sort Algoritması Kodu

JavaScript’te Heap Sort’u uygulamak oldukça kolaydır. Aşağıdaki kod bloğu, JavaScript’te Heap Sort’u uygulamanın basit bir örneğidir:

function heapSort(arr) {
    let n = arr.length;

    // Heapify the array
    for (let i = Math.floor(n / 2) - 1; i >= 0; i--) {
        heapify(arr, n, i);
    }

    // Extract elements from heap one by one
    for (let i = n - 1; i > 0; i--) {
        // Move current root to end
        [arr[0], arr[i]] = [arr[i], arr[0]];
        
        // Heapify the reduced heap
        heapify(arr, i, 0);
    }

    return arr;
}

function heapify(arr, n, i) {
    let largest = i;
    let left = 2 * i + 1;
    let right = 2 * i + 2;

    if (left < n && arr[left] > arr[largest]) {
        largest = left;
    }

    if (right < n && arr[right] > arr[largest]) {
        largest = right;
    }

    if (largest != i) {
        [arr[i], arr[largest]] = [arr[largest], arr[i]];
        heapify(arr, n, largest);
    }
}

const arr = [5, 3, 2, 4, 1];
console.log(heapSort(arr)); // [1, 2, 3, 4, 5]

Bu örnekte, heapSort fonksiyonu bir dizi alır ve diziyi Heap Sort algoritmasına göre sıralar. İlk olarak, heapify fonksiyonu kullanılarak dizi heap veri yapısına dönüştürülür. Daha sonra, dizinin son elemanından başlayarak, kök düğümünü sona taşır ve heap veri yapısını yeniden oluşturmak için heapify fonksiyonu tekrar kullanılır.

heapify fonksiyonu, bir diziyi heap veri yapısına dönüştürmek için kullanılır. Fonksiyon, bir düğümün iki çocuğu ile karşılaştırarak en büyük çocuğu belirler ve en büyük çocuğun kendisinden büyük olduğu durumlarda düğümün değeriyle en büyük çocuğun değerini değiştirir. Daha sonra, fonksiyon, değiştirilen çocuk düğümünün alt ağacına aynı işlemi uygular.

Heap Sort Algoritması Özellikleri

Heap Sort algoritması, sıralama işlemi sırasında yeni bir dizi oluşturmadan doğrudan mevcut dizi üzerinde çalışır. Bu nedenle, yer kaplama açısından çok verimlidir ve büyük miktarda veriyi hızlı bir şekilde sıralamak için idealdir.

Ancak, Heap Sort’un en kötü durum karmaşıklığı O(n log n) olduğundan, hızlı olmasına rağmen bazı durumlarda diğer sıralama algoritmalarından daha yavaş olabilir. Özellikle, sıralanacak dizi çok küçükse, Heap Sort’un kullanılması maliyetli olabilir.

Sonuç

Sonuç olarak, JavaScript’te Heap Sort algoritması kullanarak bir dizi elemanını sıralamak oldukça basittir ve verimli bir yöntemdir. Ancak, uygulama bağlamında dikkate alınması gereken faktörler olabilir, özellikle de verinin boyutu ve özellikleri göz önüne alındığında.

Evet Javascript ile heap sort algoritmasının kullanımı bu şekilde yapılmakta. Tüm Javascript yazılarımıza buraya, sıralama algoritmalarıyla ilgili yazılarımıza buraya tıklayarak ulaşabilirsiniz. Herkese hayırlı günler.

Skorumuz:
Oy Vermek İçin Tıklayın
[Toplam: 0 Ortalama: 0]

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu