Created
February 10, 2015 00:30
-
-
Save tolpp/bcf7908f41f09ea258b2 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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