[11_sorts] insertion sort, done.

This commit is contained in:
Liam Huang 2018-10-16 18:50:40 +08:00
parent 26e7806bcf
commit fb6047f070

View File

@ -54,4 +54,18 @@
## 插入排序
![图片测试](https://static001.geekbang.org/resource/image/7b/a6/7b257e179787c633d2bd171a764171a6.jpg)
1. 将待排序数列分为已排序区间和未排序区间
2. 取未排序区间的第一个元素
3. 遍历已排序区间,按照偏序关系,寻找合适的位置,插入未排序区间的第一个元素
4. 重复 2 -- 3 直至未排序区间长度为零
![插入排序例图](https://static001.geekbang.org/resource/image/fd/01/fd6582d5e5927173ee35d7cc74d9c401.jpg)
分析:
* 原地排序
* 稳定排序(值相同的元素,往后插)
* 时间复杂度
* 最好 $O(n)$
* 最坏 $O(n^2)$
* 平均 $O(n^2)$(乘法法则)