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);
}
{
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);
}