十大经典排序算法-说明

2022/1/10 17:03:38

本文主要是介绍十大经典排序算法-说明,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

排序算法是《数据结构与算法》中最基本的算法之一。排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。常见的内部排序算法有:插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。
在这里插入图片描述
复杂度说明:
O ( 1 ) < O ( l o g 2 n ) < O ( n l o g 2 n ) < O ( n 2 ) < O ( n 3 ) < O ( 2 n ) < O ( n n ) O(1)<O(log_2n)<O(nlog_2n)<O(n^2)<O(n^3)<O(2^n)<O(n^n) O(1)<O(log2​n)<O(nlog2​n)<O(n2)<O(n3)<O(2n)<O(nn)
该专栏主要是针对以上十个算法的详细笔记,并进行详细推导,使用python程序进行实现。

排序算法平均时间复杂度最佳情况最差情况空间复杂度排序方式稳定性
冒泡排序 O ( n 2 ) O(n^2) O(n2) O ( n ) O(n) O(n) O ( n 2 ) O(n^2) O(n2) O ( 1 ) O(1) O(1)In-place 稳定
选择排序 O ( n 2 ) O(n^2) O(n2) O ( n 2 ) O(n^2) O(n2) O ( n 2 ) O(n^2) O(n2) O ( 1 ) O(1) O(1)In-place 不稳定
插入排序 O ( n 2 ) O(n^2) O(n2) O ( n ) O(n) O(n) O ( n 2 ) O(n^2) O(n2) O ( 1 ) O(1) O(1)In-place 稳定
希尔排序 O ( n log ⁡ 2 n ) O(n\log^2n) O(nlog2n) O ( n ) O(n) O(n) O ( n log ⁡ 2 n ) O(n\log^2 n) O(nlog2n) O ( 1 ) O(1) O(1)In-place 不稳定
归并排序 O ( n log ⁡ n ) O(n\log n) O(nlogn) O ( n log ⁡ n ) O(n\log n) O(nlogn) O ( n log ⁡ n ) O(n\log n) O(nlogn) O ( n ) O(n) O(n)Out-place 稳定
快速排序 O ( n log ⁡ n ) O(n\log n) O(nlogn) O ( n log ⁡ n ) O(n\log n) O(nlogn) O ( n 2 ) O(n^2) O(n2) O ( log ⁡ n ) O(\log n) O(logn)In-place 不稳定
堆排序 O ( n log ⁡ n ) O(n\log n) O(nlogn) O ( n log ⁡ n ) O(n\log n) O(nlogn) O ( n log ⁡ n ) O(n\log n) O(nlogn) O ( 1 ) O(1) O(1)In-place 不稳定
计数排序 O ( n log ⁡ n ) O(n\log n) O(nlogn) O ( n ) O(n) O(n) O ( n log ⁡ n ) O(n\log n) O(nlogn) O ( n ) O(n) O(n)Out-place 稳定
桶排序 O ( n + k ) O(n+k) O(n+k) O ( n + k ) O(n+k) O(n+k) O ( n 2 ) O(n^2) O(n2) O ( n ) O(n) O(n)Out-place 稳定
基数排序 O ( n k ) O(nk) O(nk) O ( n k ) O(nk) O(nk) O ( n k ) O(nk) O(nk) O ( n + k ) O(n+k) O(n+k)Out-place 稳定

颜色对比:
最差 < < < 不好 < < < 一般 < < < < < < 最佳

结论:

  1. 平方阶 O ( n 2 ) O(n^2) O(n2)排序:直接插入、直接选择和冒泡排序等简单排序;
  2. 线性对数阶 O ( n log ⁡ 2 n ) O(n\log^2n) O(nlog2n)排序:快速排序、堆排序和归并排序;
  3. O ( 1 ) O(1) O(1)排序:希尔排序;
  4. 线性阶O(n)排序:基数排序,桶排序、箱排序等

稳定性从图可以得到:冒泡、插入、归并和基数排序相对稳定。
文章目录:
GitBook 内容大纲

  1. 冒泡排序
  2. 选择排序
  3. 插入排序
  4. 希尔排序
  5. 归并排序
  6. 快速排序
  7. 堆排序
  8. 计数排序
  9. 桶排序
  10. 基数排序


这篇关于十大经典排序算法-说明的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程