基本思想:
- 先从数列中取出一个数作为基准数。
- 分区过程,将比这个数大的数全放到它的右边,小于或等于它的数全放到它的左边。
- 再对左右区间重复第二步,直到各区间只有一个数
代码:
public static void quickSort(int arr[], int left, int right) {
if (left > right) {
return;
}
int i = left;
int j = right;
int base = arr[left];
while (i < j){
while (base <= arr[j] && i < j){
j--;
}
while (base >= arr[i] && i < j){
i++;
}
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
arr[left] = arr[i];
arr[i] = base;
quickSort(arr,left,i-1);
quickSort(arr,i+1,right);
}
参考:
https://blog.csdn.net/MoreWindows/article/details/6684558