各排序算法分类以及复杂度分析

    xiaoxiao2021-04-13  26

    一、   稳定性

    稳定性是指待排序的序列中有两个或者两个以上相同的项,排序前和排序后,看这些相同的项的相对位置有没有没发生变化,如果没有发生变化,就是稳定的;如果发生变化,就是不稳定的。

    二、   排序分类以及复杂度

    1.       插入类排序

    1.1、直接插入排序

    最坏时间复杂度:O(n^2)

    最好时间复杂度:O(n)

    平均时间复杂度:O(n^2)

    空间复杂度:O(1)

    1.2、折半插入排序

    最坏时间复杂度:O(n^2)

    最好时间复杂度:O(n)

    平均时间复杂度:O(n^2)

    空间复杂度:O(1)

    1.3、希尔排序

    平均时间复杂度:O(nlogn)

    空间复杂度:O(1)

    2.       交换类排序

    2.1、冒泡排序

    最坏时间复杂度:O(n^2)

    最好时间复杂度:O(n)

    平均时间复杂度:O(n^2)

    空间复杂度:O(1)

    2.2、快速排序

    最坏时间复杂度:O(n^2)

    最好时间复杂度:O(nlogn)

    平均时间复杂度:O(nlogn)

    空间复杂度:O(logn)

    3.       选择类排序

    3.1、简单选择排序

    最坏时间复杂度:O(n^2)

    最好时间复杂度:O(n^2)

    平均时间复杂度:O(n^2)

    空间复杂度:O(1)

    3.2、堆排序

    最坏时间复杂度:O(nlogn)

    最好时间复杂度:0(nlogn)

    平均时间复杂度:O(nlogn)

    空间复杂度:O(1)

     

    4.       归并类排序

    4.1、二路归并排序

    最坏时间复杂度:O(nlogn)

    最好时间复杂度:O(nlogn)

    平均时间复杂度:O(nlogn)

    空间复杂度:O(n)

     

    5.       基数类排序

    最坏时间复杂度:O(d(n+rd))

    最好时间复杂度:

    平均时间复杂度:O(d(n+rd))

    空间复杂度:O(rd)

    转载请注明原文地址: https://ju.6miu.com/read-668598.html

    最新回复(0)