排序算法——插入排序
排序算法中还有一个重要的排序就是插入排序,话不多,范范老师带领各位同学直接了解下什么是插入排序!
插入排序的思想:初始化时,有序区域的只有一个元素,其余元素都是属于无序区域的,那么每次我们从无序区域依次抽取一个元素,用该元素和自己的有序区域的元素一一比较,如果有序区域的元素大于该无序区域的元素,则该有序区域的元素向后移动一位,让该无序区域的元素插入进来,此时该无序区域的元素插入后变为有序区域的元素;如果有序区域的元素小于该无序区域的元素,那么位置不变,此时该无序区域的元素也变为有序区域的元素。
具体举例说明:
如下图所示,我们创建一个无序的列表,如下图所示:
初始化默认列表的第0位的元素3属于有序区域(即红色区域代表是有序区域,白色区域代表是无序区域),此时我们从白色区域抽取无序区域位于列表第1位的元素4,此时将元素3和元素4进行比较发现3<4,此时元素3不发生位移,同时元素4加入有序区域,如下图所示:
此时我们接着从白色区域抽取无序区域位于列表的第2位元素5,此时元素5和元素4比较,发现4<5,此时元素4和元素3不发生位移,同时元素5加入有序区域,如下图所示:
此时我们接着从白色区域抽取无序区域位于列表的第3位元素1,此时元素1分别和元素5 元素4 元素3比较,发现元素1都比他们小,此时元素3/4/5都向右移动一位,将列表的第0位位置空出来,此时让元素1插入到该第0位位置上,此时元素1加入有序区域,如下图所示:
此时我们接着从白色区域抽取无序区域位于列表的第4位元素2,此时元素2分别和元素5 元素4 元素3 元素1比较,发现元素5/4/3比它大,而元素1比它小,此时元素3/4/5向右移动一位将列表的第1位空出来,而元素1的位置保持不变,此时元素2加入到有序区域,如下图所示:
最后我们接着从白色区域抽取无序区域位于列表的第5位元素7,此时元素7和元素5比较发现7>5,所以此时不发生位置位移,同时元素7加入到有序区域,至此插入排序结束,如下图所示:
接下来我们通过代码来实现插入排序:
代码运行结果如下:
更多相关文章
- 排序算法——选择排序
- Microsoft Ignite 2021:Azure Resource Mover 新特性
- Python的数学运算:Python_Course
- 构造函数、dom元素的基础
- web前端技术分享之:Canvas框架之Konva.js --元素节点的事件
- Selenium3自动化测试【15】元素定位之Class、Name
- 【Redis】PHP操作Redis的命令大全
- 有关Python参数的思考
- 线性表之链式存储(二)