Skip to content

Instantly share code, notes, and snippets.

@tolpp
Created February 10, 2015 00:30
Show Gist options
  • Select an option

  • Save tolpp/bcf7908f41f09ea258b2 to your computer and use it in GitHub Desktop.

Select an option

Save tolpp/bcf7908f41f09ea258b2 to your computer and use it in GitHub Desktop.
public class QuickSort {
public int[] sort(int[] numbers){
quickSort(numbers,0,numbers.length - 1);
return numbers;
}
private void quickSort(int numbers[], int left, int right) {
int index = partition(numbers, left, right);
if (left < index - 1)
quickSort(numbers, left, index - 1);
if (index < right)
quickSort(numbers, index, right);
}
// Pivot degerin solunda pivottan kucuk,
// pivot degerin saginda pivottan buyuk
// degerlerin olmasini saglar.
// Geriye pivot'un dizi icerisindeki konumunu dondurur
private int partition(int numbers[], int left, int right)
{
int i = left, j = right;
// Pivot deger listenin ortasindan alinir
int pivot = numbers[(left + right) / 2];
// Listenin iki degere bolunmesi
while (i <= j) {
// Pivottan kucuk degerler uzerinde olundugu surece donulur
while (numbers[i] < pivot)
i++;
// Pivottan buyuk degerler uzerinde olundugu surece donulur
while (numbers[j] > pivot)
j--;
// Pivot'un sagindaki kucuk deger ile solundaki buyuk deger yer degistirilir.
if (i <= j) {
int tmp = numbers[i];
numbers[i] = numbers[j];
numbers[j] = tmp;
i++;
j--;
}
}
return i;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment