快排代码:
public class hacker_02_kuaipai {
public static void main(String[] args) {
int[] arr= {12,10,7,6,2,100};
kuaipai(arr,0,arr.length-1);
for (int i : arr) {
System.out.println(i);
}
}
// 快速排序
public static void kuaipai(int[] arr,int first,int last)
{
int low=first;
int high=last;
// 递归出口
if(low>=high){return;}
int mid_value=arr[low];
// 排序主逻辑
while(low<high){
// 右查小值
while((low<high)&&(arr[high]>mid_value))
{
high-=1;
}
arr[low]=arr[high];
// 左查大值
while ((low<high)&&(arr[low]<=mid_value))
{
low+=1;
}
arr[high]=arr[low];
}
// 标记中间值
arr[low]=mid_value;
// 左边递归排序
kuaipai(arr,first,low-1);
// 右边递归排序
kuaipai(arr,low+1,last);
}
}
结果: