java快速排序算法实现:
private static void quickSort(int[] a, int low, int high) {
//找到递归算法的出口(很重要)
if( low > high) {
return;
}
int i = low;
int j = high;
int key = a[low];
//完成一趟排序
while(i<j) {
//从右往左找到第一个小于key的数(必须先)
while(i<j && a[j] > key){
j--;
}
//从左往右找到第一个大于key的数
while(i<j && a[i] <= key){
i++;
}
//交换俩元素
if(i<j) {
int p = a[i];
a[i] = a[j];
a[j] = p;
}
}
//调整key的位置(i = j)
int p = a[i];
a[i] = a[low];
a[low] = p;
//分别对key左右边的数快排
quickSort(a, low, i-1);
quickSort(a, i+1, high);
}