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 04: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>