美文网首页
常用排序算法之快速排序

常用排序算法之快速排序

作者: Andy周 | 来源:发表于2016-07-26 20:54 被阅读16次

快速排序算法

/**
     * 快速排序
     */
    public static int[] quickSort(int[] array) {
        quick(array);
        return array;
    }

    private static int getMiddle(int[] list, int low, int high) {
        int tmp = list[low];
        while (low < high) {
            while (low < high && list[high] >= tmp) {
                high--;
            }

            list[low] = list[high];
            while (low < high && list[low] <= tmp) {
                low++;
            }

            list[high] = list[low];
        }
        list[low] = tmp;
        return low;
    }

    private static void middleSort(int[] list, int low, int high) {
        if (low < high) {
            int middle = getMiddle(list, low, high);
            middleSort(list, low, middle - 1);
            middleSort(list, middle + 1, high);
        }

    }

    private static void quick(int[] a2) {
        if (a2.length > 0) {
            middleSort(a2, 0, a2.length - 1);
        }
    }

运行

/**
     * 待排序的数组
     */
    private static int[] array = {
            12, 10, 5, 9, 5, 32, 16, 1, 9, 99, 80, 3, 18, 19, 20, 25, 7, 15
    };

    public static void main(String[] args) {

        int[] result = SortUtils.quickSort(array.clone());
        System.out.println(Arrays.toString(result));

    }

输出

[1, 3, 5, 5, 7, 9, 9, 10, 12, 15, 16, 18, 19, 20, 25, 32, 80, 99]

相关文章

  • 七大排序算法之快速排序

    七大排序算法之快速排序 @(算法笔记)[排序算法, 快速排序, C++实现] [TOC] 快速排序的介绍: 快速排...

  • 常用的排序算法

    常用的排序算法 常用的排序算法插入排序折半插入排序shell 排序冒泡排序选择排序快速排序基数排序归并排序堆排序K...

  • python 排序算法

    文章概述 介绍各大常用经典的排序算法和效率,以及python实现常用算法(冒泡排序,选择排序,快速排序,插入排序)...

  • 算法学习(1)-排序算法

    八大排序算法九大排序算法再总结[经典排序算法][集锦][直观学习排序算法] 视觉直观感受若干常用排序算法 快速排序...

  • 排序算法

    排序算法分类 排序算法常用主要有:冒泡排序法、快速排序法、选择排序法、插入排序法、堆排序法、归并排序法等几种。 ...

  • 程序员应该掌握哪些算法

    程序员必须掌握的常用算法,主要包括以下内容: 算法: 1、排序算法:快速排序、归并排序、计数排序 2、搜索算法:回...

  • 2018-07-03

    排序算法之快速排序 快速排序算法由于排序效率在同为O(N*logN)的几种排序方法中效率较高,因此经常被采用,再加...

  • 排序算法

    概述 常用排序算法 冒泡排序 插入排序 选择排序 归并排序 快速排序 冒泡排序 步骤 比较相邻元素,如果前面元素比...

  • 算法之快速排序、分而治之

    分而治之 快速排序——一种常用的优雅的排序算法。快速排序使用分而治之的策略。 分而治之 (divide and c...

  • 2019年5月份找工作面试知识点总结

    面试知识点 算法和数据结构 常用算法排序算法各种排序算法的时间复杂度,是否稳定内部排序快速排序 nlgn 不稳定冒...

网友评论

      本文标题:常用排序算法之快速排序

      本文链接:https://www.haomeiwen.com/subject/irtojttx.html