八大排序

1.直接插入排序(Straight Insertion Sort)

时间复杂度O(n^2),空间复杂度O(1),稳定

    public void InsertionSort(int[] a){
        for(int i=1;i=0&&insertionNode

2.希尔排序(Shell Sort)

3.简单选择排序(Simple Selection Sort)

时间复杂度O(n^2),空间复杂度O(1),不稳定

    public static void SelectionSort(int[] a){
        for(int i=0;i

4.堆排序(Heap Sort)

5.冒泡排序(Bubble Sort)

时间复杂度O(n^2),空间复杂度O(1),稳定

    public static void BubbleSort(int[] a){
        for(int i=0;i

6.快排(Quick Sort)

平均时间复杂度O(nlogn),空间复杂度O(logn),不稳定
最好时间复杂度O(nlogn),最好情况是每次pivot都可以均分两段
最坏时间复杂度是O(n^2),最坏情况是每次只能缩短一个排序位。即数据有序情况

   public static void QuickSort(int[] a,int l,int r){
        //这里是if
        if(l=pivot)r--;
            swap(a,l,r);
            while(l

7.归并排序(Merge Sort)

8.基数排序 (Radix Sort)

你可能感兴趣的:(八大排序)