九大排序算法
|
排序方法
|
平均情况 | 最好情况 | 最坏情况 | 辅助空间 | 稳定性 | |
| 插入排序 | 直接插入 | ![]() |
![]() |
![]() |
![]() |
✔ |
| 希尔排序 | ![]() |
![]() |
![]() |
![]() |
✘ | |
| 交换排序 | 冒泡排序 | ![]() |
![]() |
![]() |
![]() |
✔ |
| 快速排序 | ![]() |
![]() |
![]() |
![]() |
✘ | |
| 选择排序 | 简单选择 | ![]() |
![]() |
![]() |
![]() |
✘ |
| 堆排序 | ![]() |
![]() |
![]() |
![]() |
✘ | |
| 归并排序 | 归并排序 | ![]() |
![]() |
![]() |
![]() |
✔ |
| 分配排序 | 桶排序 | O(m+n) | O(m+n) | O(m+n) | ![]() |
✔ |
| 基数排序 | ![]() |
![]() |
![]() |
![]() |
✔ |


插入排序
直接插入

-----------------------------------------------------------------------------------------------------------------------------------------------------------------
希尔排序
交换排序
冒泡排序

-----------------------------------------------------------------------------------------------------------------------------------------------------------------
快速排序

选择排序
直接选择

-----------------------------------------------------------------------------------------------------------------------------------------------------------------
堆排序
二叉树基本性质:
- 第 i 层:至多 2^(i-1) 个结点
- 深度为k,至多 2^k - 1 个结点,至少 k 个结点
- 叶子n0个,度为2的结点n2个:n0 = n2 + 1
- 完全二叉树:n个结点,则深度为 [ log2(n)] + 1
- 完全二叉树(顺序表存储,下标从1开始)下标关系:双亲[ i / 2 ] 、左孩子 2 * i 、右孩子 2 * i + 1

归并排序

分配排序
桶排序


----------------------------------------------------------------------------------------------------------------------------------------------------------
基数排序

参考文献:《数据结构(C++版)》(王红梅)
By Doing






























浙公网安备 33010602011771号