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

Karışık bir diziyi ortalama O(n.logn) çalışma süresinde sıralayan bu algoritma, 1960 yılında küçük bir İngiliz şirketi olan Elliot Brothers'ta çalışan C. A. R. Hoare tarafından geliştirilmiştir. Basitleştirilmiş kodu aşağıya ekledim.
NOT: Örneğin, kodun daha hızlı çalışması için
left - right < 32
olduğunda, daha kısa sürede sıralayan başka bir algoritmadan yararlanılabilir.
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);
}