编程语言
首页 > 编程语言> > 十大经典排序算法-说明

十大经典排序算法-说明

作者:互联网

排序算法是《数据结构与算法》中最基本的算法之一。排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。常见的内部排序算法有:插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。
在这里插入图片描述
复杂度说明:
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. 基数排序

标签:nlogn,log,算法,nk,place,经典,n2,排序
来源: https://blog.csdn.net/qq_28531269/article/details/122403677