美文网首页
快速排序算法

快速排序算法

作者: 意浅离殇 | 来源:发表于2017-10-15 21:49 被阅读0次

    快速 排序与冒泡排序类型 都是基于交换 但是效率比冒泡排序更高

    快速排序思想首先设定一个分界值 将数组分成左右两个部分

    将元素小的放在左边大的放在右边 然后对左右两边进行单独排序 局部有序推到全局有序的过程

    下面用代码说明 用递归的方式

    public static void quick2(int a[],int low,int high){//   传值   数组   开始位置   结束位置
        int lo=low;
        int hi=high;
        if(lo<hi){
            int mid=(a[low]+a[high])/2;//取得中间值
            while(lo<hi){
                while(lo<high&&a[lo]<mid){     //从后寻找比中间值小的
                    lo++;
                }
                while(hi>low&&a[hi]>mid){//从钱寻找比中间值小的
                    hi--;
                }
                if(hi>lo){//找到交换
                    int temp=a[hi];
                    a[hi]=a[lo];
                    a[lo]=temp;
                }
            }
            if(hi>low){//对两边进行单独排序
                quick2(a,low,hi);
            }
            if(lo<high){
                quick2(a,lo,high);
            }
        }
    }

    相关文章

      网友评论

          本文标题: 快速排序算法

          本文链接:https://www.haomeiwen.com/subject/okhhuxtx.html