快排思路
1.设置基准值,基准值左边比基准值小,基准值右边比基准值小,基准值作用就是定位该值在数组中的位置。
2.设置数组边界下标,当两个下标相同完成了基准值得定位。
3.思路分析-快排情景模拟。
4.根据基准值,结合归并思维和化整为零和递归思想完成数组排序。
代码
public class quickSort {
private int qs(int []a,int left,int right){
int aa = a[right];
while(right>left){
while(a[left]<=aa&&right>left){
left++;
}
a[right]=a[left];
while(a[right]>=aa&&right>left){
right--;
}
a[left]=a[right];
}
a[right]=aa;
return right;
}
private void qs2(int []a,int left,int right){
if(right>left) {
int qs = qs(a, left, right);
qs2(a, left, qs-1);
qs2(a, qs + 1, right);
}
System.out.println(Arrays.toString(a));
}
public static void main(String[] args) {
int a[] ={5,9,11,6,7,10,2,1};
quickSort quickSort = new quickSort();
quickSort.qs2(a,0,a.length-1);
}
}