美文网首页
排序算法

排序算法

作者: zychen143 | 来源:发表于2017-11-17 10:05 被阅读0次

    快速排序

    平均时间复杂度是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;
        }
    }
    
    

    相关文章

      网友评论

          本文标题:排序算法

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