QuickSort (Java): Difference between revisions
From My Limbic Wiki
(Page créée avec « int partition(int arr[], int left, int right){ int i = left, j = right; int tmp; int pivot = arr[(left + right) / 2]; while (i <= j) {... ») |
No edit summary |
||
| Line 1: | Line 1: | ||
<syntaxhighlight lang="Java" line='line'> | |||
int partition(int arr[], int left, int right){ | int partition(int arr[], int left, int right){ | ||
int i = left, j = right; | int i = left, j = right; | ||
| Line 27: | Line 28: | ||
quickSort(arr, index, right); | quickSort(arr, index, right); | ||
} | } | ||
</syntaxhighlight> | |||
Latest revision as of 03:36, 30 May 2019
<syntaxhighlight lang="Java" line='line'> int partition(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--;
}
}
return i;
}
void quickSort(int arr[], int left, int right) {
int index = partition(arr, left, right);
if (left < index - 1)
quickSort(arr, left, index - 1);
if (index < right)
quickSort(arr, index, right);
} </syntaxhighlight>