30 Nisan 2015 Perşembe

Quick Sort

Quick Sort
Quick sort algoritması  ingilizce olarak çevirdiğimizde Hızlı sıralama algoritması olarak söyleyebilirz Böl yönet mantığında çalışmasına göre çalışmaktadır
Zaman  karmaşası en iyi durum O(nlog)  ortalama durumu genelde en kötü duruma daha yakındır yanındaki sayıyı ihmal edilir ve avarage case durumunu O(n^2) ve worst case ise O(n^2) dir
Çalışma mantığıda n/2 mantığına göre çalışan n/2 sol tarafı ve sağ tarafına göre  hizalama yapıyoruz ve pivot olarak belirlediğimiz bir sayı belirliyoruz ve ona göre işlemleri yapıyoruz ve unutmadan söyliyeyim pivot seçerkne durumları değişebilmektedir pivot seçimi bize en iyi durum en kötü duruma sonuçlandırmaktadır
Qoick sort işlem sonunda isteğe bağlı olarak küçükten büyüğe veya büyükten küçüğe sıralama yapmaktadır

Java kodları:
void quickSort(int arr[], int left, int right)
{
      int i = left, j = right;
      int tmp;
      int pivot = arr[(left + right) / 2];

      while (i <= j) {
            while (arr[i] < pivot)
                  i++;
            while (arr[j] > pivot)
                  j--;
            if (i <= j) {
                  tmp = arr[i];
                  arr[i] = arr[j];
                  arr[j] = tmp;
                  i++;
                  j--;
            }
      };

      if (left < j)
            quickSort(arr, left, j);
      if (i < right)
            quickSort(arr, i, right);
}


Hiç yorum yok:

Yorum Gönder