直接插入排序 --数据结构与算法

知识共享许可协议 版权声明:署名,允许他人基于本文进行创作,且必须基于与原先许可协议相同的许可协议分发本文 (Creative Commons

1、直接插入排序的思路

当插入第i个记录时,R1,R2,……,Ri-1均已经排好序。因此,将第i个记录Ri依次与Ri-1,……,R2,R1进行比较,找到合适的位置插入。

【例】使用插入排序对57 68 59 52进行排序

(1)第一步:比较57、68两数,因为57<68,所以位置不发生改变
在这里插入图片描述
(2)第二步:将59与68做比较,59<69,所以59应该在68的前面(左边),但不确定将59插入在57的前边,还是插入到57的后面。所以,59需要与57再做比较。
在这里插入图片描述
(3)第三步:因为59>57,所以59在57的后面(右边),将59插入在57的后面的位置(也即68的前的位置)上。
在这里插入图片描述
在这里插入图片描述
(4)第四步:将52与68做比较,52<68,所以52必在68的前面。
在这里插入图片描述
(5)第五步:68的前面位置有59和57,所以需要将52与59比较。因为52<59,所以52在59的前面位置。
在这里插入图片描述
(6)第六步:因为59的前面位置还有57,所以需要将52与57比较。因为52<57,所以52要插入到57的前面位置。至此,完成排序。
在这里插入图片描述
在这里插入图片描述

2、直接插入排序的优点

简单明了

4、直接插入排序的缺点

速度很慢

猜你喜欢

转载自blog.csdn.net/Thanlon/article/details/93630876