public static void quickSort(int[] arr,int left,int right) {
if (left> right) {
return;
}
int i = left; int j = right;
int baseNum = arr[left];
while (i!=j) {
while (arr[j] >= baseNum && j> i) {
j--;
}
while (arr[i] <= baseNum && i< j) {
i++;
}
if (i<j) {
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
//程序到达此处i= j 将i索引上的数和基准数呼唤位置
arr[left] = arr[i];
arr[i] = baseNum;
//利用方法的递归再次调用快排方法
quickSort(arr,left,i -1); //排基准数的左边
quickSort(arr,j+1,right); //排基准数的右边
}
public static void main(String[] args) {
int[] arr = {1,2,3,5,6,4};
quickSort(arr,0,arr.lenth-1);
}
楼主需要提高的话可以看看这种,个人感觉选择冒泡都属于基本排序,谈不上效率. |