Skip to main content
Hızlı Sıralama Algoritması ( Quic Sort )

Hızlı Sıralama Algoritması (Quick Sort Algorithm)

Merhabalar , bu yazımızda sıralama algoritmalarından birisi olan Hızlı Sıralama Algoritması (Quick Sort Algorithm) ’dan bahsedeceğiz .

Hızlı Sıralama Algoritması (Quick Sort Algorithm) Nedir?

Hızlı sıralama algoritması , böl ve yönet ( Divide & Conquer ) mantığı ile çalışan bir algoritmadır. Herhangi bir elemanı pivot olarak seçip diğer elemanları seçilen pivota göre sıralar. Birçok farklı pivot seçme yöntemi vardır ;

  1. Her zaman ilk elemanı pivot olarak seçerek ,
  2. Her zaman son elemanı pivot olarak seçerek ,
  3. Pivot olarak rastgele bir öğeyi seçerek ,
  4. Medyan(Ortanca değer)’ı pivot olarak seçerek

Divide & Conquer

Türkçesi böl ve yönet olan divide and conquer , algoritmanın yanı sıra bir problemi çözmek için kullanılan bir yaklaşımdır. Elimizde bir problem var ve biz bu problemi benzer parçalara ayırıyoruz sonrasında parçaları ayrı ayrı çözüyoruz ve tekrar birleştiriyoruz .

Quick Sort Nasıl Çalışır ?

Basit bir şekilde açıklamak gerekirsek ; Diyelim ki elimizde 7 elemanlık bir dizi var ve biz bu diziyi Hızlı Sıralama Algoritmasını kullanarak sıralayacağız . Öncelikle , yukarıda ki 3. adımı uygularsak , her adımda dizimizden rastgele bir eleman seçiyoruz daha sonra seçtiğimiz elemandan küçük olanları sol tarafa büyük olanları sağ tarafa atıyoruz böylelikle seçtiğimiz elemandan küçük tüm sayılar sol tarafta , büyük tüm sayılar ise sağ tarafta kalmış oluyor.

Hızlı Sıralama Algoritması ( Quick Sort )

Yukarıda ki resimi incelersek ;
Başlangıç Sayılarımız : 5 3 8 4 6 3 2

  1. Adım : Medyan(Ortanca değer)’ı pivot olarak seçildi (4)
  2. Adım : Pivot değerden küçük değerler sol tarafa atıldı. ( 3 3 2 )
  3. Adım : Pivot değerden büyük değerler sağ tarafa atıldı. ( 5 8 6 )
  4. Adım : (3 3 2) değerlerinden yeniden bir pivot seçildi. (3)
  5. Adım : 3 değerinden küçükler sola büyükler sağa atıldı.
  6. Adım : (3 3 2) değerlerinden yeniden bir pivot seçildi. (8)
  7. Adım : 8 değerinden küçükler sola büyükler sağa atıldı.
  8. Adım : Parçalanarak sona gelindi ve en sonki değerler :
    ( 2 3 3 4 5 6 8 ) şeklinde küçükten büyüğe doğru sıralanmış oldu

C dilinde Hızlı Sıralama Algoritması(Quick Sort)

int partition(int arr[], int low, int high)
{
    int pivot = arr[high]; 
    int i = (low - 1);  
 
    for (int j = low; j <= high- 1; j++)
    {
        
        if (arr[j] <= pivot)
        {
            i++;    
            swap(&arr[i], &arr[j]);
        }
    }
    swap(&arr[i + 1], & arr[high]);
 
    return (i + 1);
}
 
void quickSort(int arr[], int low, int high)
{
    if (low < high)
    {
        int pi = partition(arr, low, high);
        
        quickSort(arr, low, pi - 1);
        quickSort(arr, pi + 1, high);
    }
}

Sıralama algoritmaları ile ilgili daha fazla yazımızı okumak için http://kodlar.net/ ‘ i takip edebilirsiniz . Bu konu hakkında daha fazla bilgi ve daha fazla dökümana sahip olmak için burayı ziyaret edebilirsiniz .

Emre Sualp

Kocaeli Üniversitesi Bilgisayar Mühendisliği 4. sınıf öğrencisiyim .Java , Javascript ve Android programlama ile ilgileniyorum.Bildiklerimi aktarmak ve yeni öğrendiğim konuları pekiştirmek için yazılarımı sizlerle paylaşacağım.

2 thoughts to “Hızlı Sıralama Algoritması (Quick Sort Algorithm)”

Bir cevap yazın

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