博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
基本算法--快速排序
阅读量:6684 次
发布时间:2019-06-25

本文共 1246 字,大约阅读时间需要 4 分钟。

hot3.png

原理:选择一个基准元素,通常选择第一个元素或者最后一个元素,通过一趟扫描, 将待排序列分成两部分,一部分比基准元素小,一部分大于等于基准元素, 此时基准元素在其排好序后的正确位置,然后再用同样的方法递归地排序划分的两部分。

/**     *     * @author 阿信sxq-2015年7月16日     *     * @param args     */    public static void main(String[] args) {        int a[] = { 49, 38, 65, 97, 76, 13, 27, 49, 78, 34, 12, 64, 5, 4,                62, 99, 98, 54, 56, 17, 18, 23, 34, 15, 35, 25, 53, 51 };        if (a.length > 0) {//查看数组是否为空                _quickSort(a, 0, a.length - 1);        }        System.out.println(Arrays.toString(a));    }    public static void _quickSort(int[] arr, int left, int right) {        if (left >= right) {            return;        }        int low = left;        int high = right;        int tmp = arr[low];//数组的第一个作为中轴            while (low < high) {            while (low < high && arr[high] >= tmp) {                high--;            }            arr[low] = arr[high];//比中轴小的记录移到低端                while (low < high && arr[low] <= tmp) {                low++;            }            arr[high] = arr[low];//比中轴大的记录移到高端            }        arr[low] = tmp;//中轴记录到尾            _quickSort(arr, left, low - 1);//对低字表进行递归排序            _quickSort(arr, low + 1, right);//对高字表进行递归排序        }

 

转载于:https://my.oschina.net/songxinqiang/blog/672635

你可能感兴趣的文章
rhel6之yum
查看>>
selenium+ant+testng测试框架简单介绍
查看>>
自己写的DBUtil数据库连接工具类
查看>>
登录多实例MySQL失败,修改密码临时解决,原因不明
查看>>
Linux下安装oracle数据库步骤
查看>>
yum 不小心删除后安装
查看>>
vim 使用
查看>>
为敏感信息设置安全屏障
查看>>
mysql fabric安装使用测试
查看>>
java 对 mongoDB 分组统计操作 以及一些常用操作
查看>>
当你扛不住的时候就读读
查看>>
解决安装rrdtool遇到的一个问题
查看>>
linux启动过程
查看>>
我的友情链接
查看>>
我的友情链接
查看>>
xmlUtil 解析 创建
查看>>
我的友情链接
查看>>
linux 命令(3)echo
查看>>
Nginx基础入门之nginx基础配置项介绍(2)
查看>>
一次详细全面的***报告
查看>>