美文网首页数据结构
常见十大排序算法概述

常见十大排序算法概述

作者: 程序员will | 来源:发表于2019-11-01 15:44 被阅读0次

    排序算法概述

    网上常见的排序算法有十种:冒泡排序快速排序插入排序希尔排序选择排序堆排序归并排序计数排序基数排序桶排序

    排序算法分类

    上面十大排序算法按照非线性时间比较类排序线性时间非比较类排序进行分类:

    img

    排序算法对比

    时间复杂度空间复杂度稳定性三方面对比十种排序方法如下:

    排序算法 时间复杂度(平均) 时间复杂度(最坏) 时间复杂度(最好) 空间复杂度(平均) 稳定性
    冒泡排序 O(n2)O(n2) O(n2)O(n2) O(n)O(n) O(1)O(1) 稳定
    快速排序 O(nlog2n)O(nlog2⁡n) O(n2)O(n2) O(nlog2n)O(nlog2⁡n) O(nlog2n)O(nlog2⁡n) 不稳定
    插入排序 O(n2)O(n2) O(n2)O(n2) O(n)O(n) O(1)O(1) 稳定
    希尔排序 O(n1.3)O(n1.3) O(n2)O(n2) O(n)O(n) O(1)O(1) 不稳定
    选择排序 O(n2)O(n2) O(n2)O(n2) O(n2)O(n2) O(1)O(1) 不稳定
    堆排序 O(nlog2n)O(nlog2⁡n) O(nlog2n)O(nlog2⁡n) O(nlog2n)O(nlog2⁡n) O(1)O(1) 不稳定
    归并排序 O(nlog2n)O(nlog2⁡n) O(nlog2n)O(nlog2⁡n) O(nlog2n)O(nlog2⁡n) O(n)O(n) 稳定
    计数排序 O(n+k)O(n+k) O(n+k)O(n+k) O(n+k)O(n+k) O(n+k)O(n+k) 稳定
    基数排序 O(n+k)O(n+k) O(n2)O(n2) O(n)O(n) O(n+k)O(n+k) 稳定
    桶排序 O(n⋅k)O(n⋅k) O(n⋅k)O(n⋅k) O(n⋅k)O(n⋅k) O(n+k)O(n+k) 稳定

    相关文章

      网友评论

        本文标题:常见十大排序算法概述

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