直接插入排序

一:直接插入排序是什么。

二:如何实现直接插入排序

三:直接插入排序时间复杂度

一:直接插入排序它是排序得一种,其目的无非是将乱序通过排序排成有序的。

我们可以通过动画直观看什么是直接插入排序

这是我找的直接插入排序的动画,大家务必观看,有助于理解直接插入排序

【插入排序动画演示】

https://www.bilibili.com/video/BV1er4y1b7o4?vd_source=82192e4b91182780b22eaffdea08406c

二:实现直接插入排序

这里我是利用画图,来模拟实现直接插入排序

我在这描述一下直接插入排序如何实现:比如一共有6个无序的数,给他进行直接插入排序。

它是先让end从左到右遍历(用下标i控制),tmp存储end+1(end后面一个的值)。如果end对应的值大于tmp,就把end的值挪到tmp位置。然后让end--(end位置往前挪一位),然后让tmp挪到end+1的位置(end挪动之前的位置)。然后i++,让end遍历,走到第二个位置,让end的下一个位置上的数给给tmp,在和end的值比较,tmp小于end,end的值往后挪,然后让tmp再和第一个位置的数比,tmp小于它,第一个再往后挪,否则第一个数不动,接着让tmp挪到第一个或者第二个位置上。end遍历到第三个数,end和它后面一个数比较,大于end往后挪,end的前面的数依次和tmp比,大了往后挪,否则数字位置不动。再就是一直重复以上过程直至end取到第五个数结束(因为end取第六个数,后面没有数字给它排序的了)。

提炼:直接插入排序是让当前的数x跟它的下一个数tmp比较,x大,x往后挪一位呗。然后是再让

tmp依次和x之前的数比,tmp小,x之前的数往后挪,否则该数的位置不动。

下头是代码

测试一下

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值