Java Collections
课本的完整实现
public class quickSort {
public void quickSort(int[] nums) {
StdRandom.Shuffle(a);
sort(a, 0, nums.length - 1);
return;
}
public sort(int[] nums, int low, int high) {
if(high <= low)
return;
int pivot = partition(nums, low, high);
sort(nums, low, pivot - 1);
sort(nums, pivot + 1, high);
return;
}
public int partition(int[] nums, int low, int high) {
int p1 = low;
int p2 = high + 1;
while(true) {
while(nums[++p1] < nums[low])
if(p1 == high) break;
while(nums[--p2] >= nums[low])
if(p2 == low) break;
if(p1 >= p2) break;
swap(nums, p1, p2);
}
swap(a, low, p2);
return p2;
}
}