快速排序法-java实现

来源:互联网 发布:淘宝返利网都有哪些 编辑:程序博客网 时间:2024/06/03 17:44

获取中轴的位置

public int getMiddle(int[] list,int low,int high){    int temp=list[low];//将第一个数作为中轴    while(low<high){    //比中轴小的记录移到低端位置    while(low<high&&list[high]>=temp)        high--;    list[low]=list[high];    //比中轴大的记录移到高端位置    while(low<high&&list[low]<=temp)        low--;    list[high]=list[low];    }    list[low]=temp;    return low;}

递归实现排序

public void _quickSort(int[] list,int low,int high){    if(low<high){    int middle=getMiddle(list,low,high);    //将中轴的左边排序    _quickSort(list,low,middle-1);    //将中轴的右边排序    _quickSort(list,middle+1,high);}

总结

别人说可以将类型分化得更细一些,比如将他们分为三类,小于、等于、大于;会比较快速,以后再尝试。
0 0
原创粉丝点击