排序方法
|
平均情况 | 最好情况 | 最坏情况 | 辅助空间 | 稳定性 | |
插入排序 | 直接插入 | ![]() |
![]() |
![]() |
![]() |
✔ |
希尔排序 | ![]() |
![]() |
![]() |
![]() |
✘ | |
交换排序 | 冒泡排序 | ![]() |
![]() |
![]() |
![]() |
✔ |
快速排序 | ![]() |
![]() |
![]() |
![]() |
✘ | |
选择排序 | 简单选择 | ![]() |
![]() |
![]() |
![]() |
✘ |
堆排序 | ![]() |
![]() |
![]() |
![]() |
✘ | |
归并排序 | 归并排序 | ![]() |
![]() |
![]() |
![]() |
✔ |
分配排序 | 桶排序 | O(m+n) | O(m+n) | O(m+n) | ![]() |
✔ |
基数排序 | ![]() |
![]() |
![]() |
![]() |
✔ |
![](https://images2015.cnblogs.com/blog/947400/201605/947400-20160527162632522-382854412.png)
![](https://images2015.cnblogs.com/blog/947400/201605/947400-20160527162634272-2047512820.png)
插入排序
直接插入
![](https://images2015.cnblogs.com/blog/947400/201605/947400-20160527162635475-718229336.png)
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
希尔排序
![](https://images2015.cnblogs.com/blog/947400/201607/947400-20160711091413295-1306709619.png)
交换排序
冒泡排序
![](https://images2015.cnblogs.com/blog/947400/201605/947400-20160527162639834-702140766.png)
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
快速排序
![](https://images2015.cnblogs.com/blog/947400/201605/947400-20160527162641631-321527433.png)
选择排序
直接选择
![](https://images2015.cnblogs.com/blog/947400/201605/947400-20160527162643147-1019919878.png)
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
堆排序
二叉树基本性质:
- 第 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
![](https://images2015.cnblogs.com/blog/947400/201605/947400-20160527162645709-704279757.png)
归并排序
![](https://images2015.cnblogs.com/blog/947400/201605/947400-20160527162648303-1661652159.png)
分配排序
桶排序
![](https://images2015.cnblogs.com/blog/947400/201605/947400-20160527162649491-1627313015.png)
![](https://images2015.cnblogs.com/blog/947400/201605/947400-20160527162651975-2123401217.png)
----------------------------------------------------------------------------------------------------------------------------------------------------------
基数排序
![](https://images2015.cnblogs.com/blog/947400/201605/947400-20160527162657709-67179664.png)
参考文献:《数据结构(C++版)》(王红梅)
By Doing