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

Posted 算法与编程之美

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA实现常见排序算法 快速排序相关的知识,希望对你有一定的参考价值。


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


空间复杂度最坏为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实现常见排序算法 快速排序的主要内容,如果未能解决你的问题,请参考以下文章

常见的链表排序(Java版)

六种常见排序算法的java实现

数据结构之八大排序算法(C语言实现)

Java排序算法分析与实现:快排冒泡排序选择排序插入排序归并排序

Unity中的快速排序算法&&二分查找

常见的七种排序算法(Java实现)