从上一则博客讲起,目前我们已经知晓了冒泡排序这种算法,接下来就来看看第二种排序算法——插入排序
(感谢读者朋友些,这是传送门:冒泡排序)
正式开始
同样的,这还是从小到大排序。我懒惰,不想写从大到小的,聪明的读者朋友应该会写。
顾名思义,插入排序,就是把每一个需要排序的元素,按照它自己的大小插入到前面的已经排序完成的区间里面,有方向性的扫描。
有两种插入排序,一种是直插(扑克直接插入排序),另一种是希尔插入排序。介于希尔插入的排序方式具有针对性,且新手难以直接理解(再加上作者懒惰),所以本文只介绍直插!
(希尔插入也提一下,就是分段排序最后逼近有序)。
是不是超级简单……
代码思路
假设存在一个无序数组M[1,2,3,......,n-1,n-2]
初始状态