Quick Sort Algoritması

Quick Sort Algoritması

Quick Sort Algoritması

  2 dakika Okuma Süresi
Merhabalar, C# derslerimize kaldığımız yerden devam ediyoruz. Bu dersimizde Quick Sort (Hızlı Sıralama) Algoritması'nı anlatacağım. Hadi başlayalım !

Bu algoritmayı diğer sıralama algoritmalarından ayıran en büyük özelliği biraz farklı işleyişi olması. Farklı derken, diğer algoritmalarda belirli bir index yada eleman üzerinden gidiliyordu yada dizi parçalanıyor ve öyle sıralanıyordu fakat bu algoritmada rastgele bir eleman seçiliyor, o elemandan küçük olanlar sol, büyük olanlar sağ tarafa atılıyor.
Hem sol hem de sağ tarafta oluşan diziler ayrı ayrı sıralandıktan sonra sol taraftaki dizinin yanına seçtiğimiz eleman, onun yanına da sağ taraftaki dizi eklenir ve sonuç olarak başlangıçtaki dizi sıralanmış olur.
Algoritmanın karmaşıklığı ise O(nlog2n)'dir.

Bu kadar teorik olarak bahsettikten sonra C# kodunu yazalım;

int Partition(int[] dizi, int low, int high)
{
    int pivot = dizi[high];
    int i = low - 1;
    for(int j = low; j < high; j++)
    {
        if(dizi[j] <= pivot)
        {
            i++;
            int temp = dizi[i];
            dizi[i] = dizi[j];
            dizi[j] = temp;
        }
    }
    int temp = dizi[i + 1];
    dizi[i + 1] = dizi[high];
    dizi[high] = temp;
    return i + 1;
}
void QuickSort(int[] dizi, int low, int high)
{
    if(low < high)
    {
        int part = Partition(dizi, low, high);
        QuickSort(dizi, low, part - 1);
        QuickSort(dizi, pi + 1, high);
    }
}
Evet bu yazmış olduğumuz kod ile Partition fonksiyonu adından da anlaşılacağı üzere seçilen elemana göre diziyi ikiye ayırıyor.
Yani seçilen elemandan küçük olanları sola, büyük olanları sağa taşıyor. QuickSort fonksiyonu ise sıralama işlemini yapıyor.
Bu işlemlerin ardından elimizde bulunan dizi küçükten büyüğe doğru sıralanmış oluyor.


  • İçeriği Paylaş:

İÇERİĞİ DEĞERLENDİR

Toplam Değerlendirme Sayısı: 0
Toplam Değerlendirme: 0 / 5

Cevap Yaz