搜文章
推荐 原创 视频 Java开发 iOS开发 前端开发 JavaScript开发 Android开发 PHP开发 数据库 开发工具 Python开发 Kotlin开发 Ruby开发 .NET开发 服务器运维 开放平台 架构师 大数据 云计算 人工智能 开发语言 其它开发
Lambda在线 > 算法与编程之美 > JAVA实现常见排序算法 快速排序

JAVA实现常见排序算法 快速排序

算法与编程之美 2019-11-08


基本思想:用选取的初始值(一般是第一个)将待排序序列分为小于初始值和大于初始值的两部分,然后重复此操作,最终到排序完成。该算法是一个不稳定的算法(如果待排序序列中存在相同的元素,经过排序后他们的相对位置不发生改变那么这个算法就是稳定的排序算法)


空间复杂度最坏为O(n),平均


时间复杂度最坏为O(n2),最好为


Java实现:

public static int[] quickSort(int[] n,  int low, int high) {

         int lowMark = low, highMark = high;

         int record;

         if (low < high) {

            //记录值

            record = n[low];

            while (lowMark != highMark) {

                //高位指针偏移

                while (lowMark < highMark  && n[highMark] >= record) {

                    highMark--;

                }

                //交换元素

                n[lowMark] = n[highMark];

                //低位指针偏移

                while (lowMark < highMark  && n[lowMark] <= record) {

                    lowMark++;

                }

                //交换元素

                n[highMark] = n[lowMark];

            }

            //将记录值写到最后低位指针的位置

            n[lowMark] = record;

            //两边分别进行排序操作

            quickSort(n, low, lowMark - 1);

            quickSort(n, lowMark + 1, high);

         }

         return n;

     }

 



 where2go 团队


   

温馨提示:点击页面右下角“写留言”发表评论,期待您的参与!期待您的转发!


版权声明:本站内容全部来自于腾讯微信公众号,属第三方自助推荐收录。《JAVA实现常见排序算法 快速排序》的版权归原作者「算法与编程之美」所有,文章言论观点不代表Lambda在线的观点, Lambda在线不承担任何法律责任。如需删除可联系QQ:516101458

文章来源: 阅读原文

相关阅读

关注算法与编程之美微信公众号

算法与编程之美微信公众号:algo_coding

算法与编程之美

手机扫描上方二维码即可关注算法与编程之美微信公众号

算法与编程之美最新文章

精品公众号随机推荐