快速排序 Quick sort

最差情况,序列刚好是有序的,复杂度为O(n^2)
最好情况,每次基准刚好是中间值,复杂度为O(nlogn)
平均复杂度为:O(nlogn) 不稳定的排序算法
由于递归,需要消耗运行时栈的空间

static int partition(int[] unsorted, int low, int high) {
            int pivot = unsorted[low];
            while (low < high) {
                while (low < high && unsorted[high] > pivot) high--;
                unsorted[low] = unsorted[high];
                while (low < high && unsorted[low] <= pivot) low++;
                unsorted[high] = unsorted[low];
            }
            unsorted[low] = pivot;
            return low;
        }

        static void quick_sort(int[] unsorted, int low, int high) {
            int loc = 0;
            if (low < high) {
                loc = partition(unsorted, low, high);
                quick_sort(unsorted, low, loc - 1);
                quick_sort(unsorted, loc + 1, high);
            }
        }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 基本思想: 1)选择一个基准元素,通常选择第一个元素或者最后一个元素。 2)通过一趟排序将待排序的记录分割成独立的...
    NEXTFIND阅读 4,900评论 0 0
  • 原理 快速排序一听名字就觉得很高端,在实际应用当中快速排序确实也是表现最好的排序算法。快速排序虽然高端,但其实其思...
    sea_baby阅读 4,612评论 0 1
  • [003]:http://latex.codecogs.com/svg.latex?$\Theta(\textit...
    琰琰爸阅读 7,900评论 3 2
  • 1. 简介 快速排序是由C.A.R.Hoare在1960年发明的。快速排序可能是应用最广泛的排序算法了,快速排序的...
    谢朴欢阅读 8,589评论 0 3
  • 作为最常用和好用的排序方法, 快速排序是每个工程师必须随时能够手写出代码和解释其运行原理的算法 快速排序算法 快排...
    陈码工阅读 3,122评论 0 0