mehmetduran.com - Paylaşmak Güzeldir...
C# ile Quick Sort Algoritması
Bu yazımda da yine okulda almış olduğum Algoritmalar dersinde gördüğümüz Quick Sort algoritmasının C# kodlarını sizlerle paylaşacağım. Quick Sort algoritması daha önce paylaşmış olduğum merge sort algoritmasına benzeyen ve recursive olarak çalışan bir algoritma. Merge sort algoritmasına göre daha yavaş çalışan bir algoritma olmasına karşın sıralama işlemlerinde çok sık kullanılan bir algoritma. Şimdi Quick Sort algoritmasını C# ile nasıl yapacağımıza bakalım.

Bu algoritmayı kullanmak için recursive olan bir void metot (quick_sort) ve bunun dışında ek bir void metot (partition) hazırladım. Bu metotlar ile Quick Sort ile integer türünden diziyi sıralayabiliyoruz. Algoritmanın C# kodları ve kullanımı aşağıdaki gibi olacak.

    int q;
    public void quick_sort(int[] dizi, int p, int r)
    {
      if (p < r)
      {
        partition(dizi, p, r);
        quick_sort(dizi, p, q);
        quick_sort(dizi, q + 1, r);
      }
    }
 
    public void partition(int[] dizi, int p, int r)
    {
      int x = dizi[p];
      int i = p - 1;
      int j = r + 1;
      while (true)
      {
        do
        {
          j--;
        }
        while (dizi[j] > x);
 
        do
        {
          i++;
        }
        while (dizi[i] < x);
 
        if (i < j)
        {
          int gecici = dizi[i];
          dizi[i] = dizi[j];
          dizi[j] = gecici;
        }
        else
        {
          q = j;
          break;
        }
      }
    }
 
    /*Quick Sort Kullanımı*/
    int[] dizi = { 12, 3, 8, 5, 15, 12, 45, 31 };
    quick_sort(dizi, 0, dizi1.Length - 1);

Quick sort algoritması da bu şekilde. Sıralama algortimalarından Quick Sort'u da görmüş olduk. Bu türlü kodlamalarla algoritma bilgimizi geliştirebiliriz.

İyi Çalışmalar.
Mehmet Duran 25 Nisan Cumartesi 2009 1 16156 4,7
Bookmark and Share
Bu Yazıyı Değerlendirin.
Konuyla İlgili Olabilecek Diğer Yazılar Cache Coherence Kavramı Okul ve Projeler Bir Dönem Daha Geride Kaldı Bilgisayar Mühendisliği Topluluğu Gazi Üniversitesi Bilişim ve Kariyer Günleri
Yorumlar
Yorum Yaz
RSS Yorum Takibi
Şeref Akyüz 06 Mart Pazar 2011 22:20 #1
Ödevim için yardımcı oldu teşekkürler...
İsim :
Site :
Yorum :

Buradan bu yazıya ait yorumları RSS olarak takip edebilirsiniz.

Bu servis ile yazılara eklenen yorumları RSS ile takip ederek konu ile ilgili başkaları tarafından yapılan yorumları veya konuyla ilgili sorduğunuz sorulara verilen cevapları görebilirsiniz.
Ne edersen kendine, edersin kendi kendine.
Bölümler
Yazılar
Arşiv
Arama
Linkler
Site İçi Arama
Son Zamanlarda Ne Yapıyorum ?
İstatistikler - Araçlar - Reklam
İstatistikler
Sayaç
Mehmet Duran | mehmetduran.com | Copyright © 2009