快速排序算法

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

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

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

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

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);
        }
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容