用递归的思想写快速排序
public class DiGui1 {
public static void quickSort(int[] arr,int start,int end){
//递出去
if(start>=end){
return;
}else{
int s = start;
int e = end;
//第一个数定义为key;
int key = arr[s];
while(s!=e){
//从右往左找比key小的数
while(s<e && key<=arr[e]){
e--;
}
//如果没有比key小的数就跳出循环
if(s==e){
break;
}
int temp = arr[e];
arr[e] = arr[s];
arr[s] = temp;
//从左往右找比key大的数
while(s<e && key>=arr[s]){
s++;
}
//如果没有比key大的数就跳出循环
if(s==e){
break;
}
//找到的比key大的值,赋给e的位置`
temp = arr[s];
arr[s] = arr[e];
arr[e] = temp;
}
//前一半
quickSort(arr,0,(s-1));
//后一半
quickSort(arr,(s+1),end);
}
}
}
用递归的思想写快速排序
最新推荐文章于 2021-10-07 21:31:19 发布