排序算法————插入法

本文介绍了插入排序的算法模型和实现细节,包括添加哨兵岗数据、设定排序范围、设置哨兵位以及如何确定插入位置。通过示例展示了5个数的序列只需4趟即可完成排序的过程,强调了在实现过程中注意哨兵位与插入位置的关系。
摘要由CSDN通过智能技术生成

导文

几种算法模型必须信手捏来,因此这几种解决问题的思路和方法可以扩展到非常多的地方,搭建好模型后,根据模型演变各种算法

算法模型

这里写图片描述

算法实现

实现细节
1.添加哨兵岗数据,其次限定已经排序好的数列序号,初始假定已经排好第一个数是有序序列,最后拿第二个数和第一个数做比较,依次类推,
2.排序时i取值范围最好和数字初始排序序号一直,
3.再设置哨兵位和已经排序好的数列中最后一个序号做比较时,设定j,并确定j = i - 1,
4. 发现一旦已经排好序的最后一个数大于岗位数时,要依次向前进行比较,而且不确定多少次,说明while 循环比较。
5. 根据上图可知5个数的序列只需4趟即可完成
实现注意
在最后岗位上的数字插入哪个位置呢?与j有什么关系,通过带入函数跟踪到5时,发现要出入的位置就是j+1,但是此时的j+1并不等于i,因为j是递减,至于减到多少无法预判,只能根据while循环条件进行判断,因此只能判断出位置为lst[j+1] = lst[0]

实现代码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值