Quicksort code | |
Int myList[] = {56,64,32,99,11,12,36,73,8,80}; Quciksort(myList, 0, 9);
Public void quicksort(int list[], int low, int high){ // if there is only one item to look at then just return If (high – low <=1) return;
Int pivot = list[low]; Int a = low + 1; Int leftPartition[]; Int rightPartition[]; Int leftPointer = 0; Int rightPointer = 0;
For (a=low + 1, a < high, a++){ If (list[a] < pivot){ leftPartition[leftPointer] = list[a]; leftPointer = leftPointer + 1; } else { rightPartition[rightPointer] = list[a]; rightPointer = rightPointer + 1; } } // now recombine the arrays leftPointer = 0;
For (a=0, a < leftPartition.length; a++){ leftPointer = leftPointer + 1; } List[leftPointer] = pivot; leftPointer = leftPointer + 1;
For (a=0, a < rightPartition.length; a++){ leftPointer = leftPointer + 1; } // finally perform recursion over the list
Quicksort(list, low, low + leftPartition.length); QuickSort(list, low + leftPartition.length +1, high); } |