常见十大排序算法概述

排序算法概述

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

排序算法分类

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

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) 稳定
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。