快速排序算法是冒泡算法的改进
冒泡算法,是遍历寻找最大值的位置,数组范围-1,一直迭代到最小值
快速排序算法是给基准值找位置(分治算法),基准值左边是比基准值小的数据,基准值右边是比基准值大的数据
先左滑动 把大于基准值的数据交换到右边
然后右滑动 把右边小于基准值的数据交换到左边
直到左右光标重合,定位到基准值位置。
左右两边进行分组递归完成排序
public class FastSort {
public static void main(String args[]) {
int data[]= {1,5,7,3,6,9};
FastSort.sort(data,0,data.length-1);
for(int i:data) {
System.out.print(i);
}
}
public static void sort(int[] data,int low,int hight) {
if(low>=hight)
return ;
int base = data[hight];
int l = low;//保留低位
int h = hight;//保留高位
while (low<hight) {
while (low<hight&&data[low]<base) {//移动左光标
low++;
}
//交换位置
data[hight]=data[low];
while (low<hight&&data[hight]>base) {//移动右光标
hight--;
}
//交换位置
data[low]=data[hight];
}
data[low]=base;//定位 基准数位置
//分治
sort(data,l,low-1);
sort(data, low+1, h);
}
}