排序算法

快速排序

平均时间复杂度是O(N*lgN),最坏情况下是O(N^2),是一个不稳定的算法

package com.zychen.wordCount;

/**
 * @Author: 章源辰
 * @Date: 2017/11/17
 * @Description:
 */
public class QuickSort {

    public static void main(String[] args) {
        int[] array = {10, 50, 30, 20, 40};
        array = sort(array, 0, array.length - 1);
        for (int i : array) {
            System.out.print(i + ",");
        }
    }

    public static int[] sort(int[] arr, int l, int r) {
        if (l < r) {
            int i = l;
            int j = r;
            int x = arr[i];
            while (i < j) {
                while (i < j && x < arr[j]) {
                    j--;
                }
                if (i < j) {
                    arr[i++] = arr[j];
                }

                while (i < j && x > arr[i]) {
                    i++;
                }
                if (i < j) {
                    arr[j--] = arr[i];
                }
            }
            arr[i] = x;
            sort(arr, l, i - 1);
            sort(arr, i + 1, r);
        }
        return arr;
    }
}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 文章大纲:1.总体排序算法对比图2.9种排序算法介绍 冒泡排序 算法描述 冒泡排序是一个平均时间复杂度为O(n^2...
    柠檬乌冬面阅读 4,145评论 0 73
  • 概述 排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部...
    蚁前阅读 5,251评论 0 52
  • 概述:排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部...
    每天刷两次牙阅读 3,757评论 0 15
  • 一. 写在前面 要学习算法,“排序”是一个回避不了的重要话题,在分析完并查集算法和常用数据结构之后,今天我们终于可...
    Leesper阅读 2,571评论 0 40
  • 今天我们来谈谈自己的事自己做的好处。 昨天发生了2件事,第一件事:爸爸给你准备的行李,居然带了2截裤管,拼接短裤没...
    萍萍淡淡阅读 194评论 0 0