找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 352|回复: 1

常用排序算法的性能

[复制链接]

70

主题

11

回帖

286

积分

管理员

积分
286
发表于 2025-2-5 19:55:22 | 显示全部楼层 |阅读模式
常用排序算法的性能算法平均时间复杂度最好情况最差情况空间复杂度排序方式稳定性
冒泡排序O(n2)O(n2)O(n)O(n)O(n2)O(n2)O(1)O(1)in-place稳定
选择排序O(n2)O(n2)O(n2)O(n2)O(n2)O(n2)O(1)O(1)in-place不稳定
插入排序O(n2)O(n2)O(n)O(n)O(n2)O(n2)O(1)O(1)in-place稳定
希尔排序O(nlogn)O(nlog⁡n)O(nlogn)O(nlog⁡n)O(n2)O(n2)O(1)O(1)in-place不稳定
归并排序O(nlogn)O(nlog⁡n)O(nlogn)O(nlog⁡n)O(nlogn)O(nlog⁡n)O(n)O(n)out-place稳定
快速排序O(nlogn)O(nlog⁡n)O(nlogn)O(nlog⁡n)O(n2)O(n2)O(n)O(n)in-place不稳定
堆排序O(nlogn)O(nlog⁡n)O(nlogn)O(nlog⁡n)O(nlogn)O(nlog⁡n)O(1)O(1)in-place不稳定
计数排序O(n+k)O(n+k)O(n+k)O(n+k)O(n+k)O(n+k)O(k)O(k)out-place稳定
桶排序O(n+k)O(n+k)O(n+k)O(n+k)O(n2)O(n2)O(n)O(n)out-place稳定
基数排序O(nk)O(nk)O(nk)O(nk)O(nk)O(nk)O(n+k)O(n+k)out-place稳定

我们日常用的最多的可能是快速排序和堆排序,这两个算法都是性能很高的排序算法,缺点是不稳定。
TimSort 算法性能比快速排序和堆排序还高,且是稳定排序算法。

匿名
匿名  发表于 2025-2-5 19:56:12
算法平均时间复杂度最好情况最差情况空间复杂度排序方式稳定性
冒泡排序O(n2)O(n2)O(n)O(n)O(n2)O(n2)O(1)O(1)in-place稳定
选择排序O(n2)O(n2)O(n2)O(n2)O(n2)O(n2)O(1)O(1)in-place不稳定
插入排序O(n2)O(n2)O(n)O(n)O(n2)O(n2)O(1)O(1)in-place稳定
希尔排序O(nlogn)O(nlog⁡n)O(nlogn)O(nlog⁡n)O(n2)O(n2)O(1)O(1)in-place不稳定
归并排序O(nlogn)O(nlog⁡n)O(nlogn)O(nlog⁡n)O(nlogn)O(nlog⁡n)O(n)O(n)out-place稳定
快速排序O(nlogn)O(nlog⁡n)O(nlogn)O(nlog⁡n)O(n2)O(n2)O(n)O(n)in-place不稳定
堆排序O(nlogn)O(nlog⁡n)O(nlogn)O(nlog⁡n)O(nlogn)O(nlog⁡n)O(1)O(1)in-place不稳定
计数排序O(n+k)O(n+k)O(n+k)O(n+k)O(n+k)O(n+k)O(k)O(k)out-place稳定
桶排序O(n+k)O(n+k)O(n+k)O(n+k)O(n2)O(n2)O(n)O(n)out-place稳定
基数排序O(nk)O(nk)O(nk)O(nk)O(nk)O(nk)O(n+k)O(n+k)out-place稳定
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|软件开发

GMT+8, 2025-8-27 10:10 , Processed in 0.123436 second(s), 21 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表