排序方法
|
平均情况 | 最好情况 | 最坏情况 | 辅助空间 | 稳定性 | |
插入排序 | 直接插入 | ✔ | ||||
希尔排序 | ✘ | |||||
交换排序 | 冒泡排序 | ✔ | ||||
快速排序 | ✘ | |||||
选择排序 | 简单选择 | ✘ | ||||
堆排序 | ✘ | |||||
归并排序 | 归并排序 | ✔ | ||||
分配排序 | 桶排序 | 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