对插入排序法简单理解

复杂度为O(n2)

核心概念:分为 已排序数列和未排序数列,目的是将每一个未排序的数字逐一与已排序数列的最后一位比较,进行排序

例子 4 3 2 1
提前准备 4 | 3 2 1
把4作为已排序数列
3 2 1作为未排序数列

第一次 3 4 | 2 1 ///////////////3与4比较 3<4 4则往后移一位 把3放置第一位
第二次 2 3 4 | 1 ///////////////////2<4 4再往后移一位 2<3 3往后移一位 空出来的第一位由2补上
第三次 1 2 3 4 以此类推

核心代码
for(i=1;i<n;i++) //从数组下标1开始比较排列 比较N-1次
{
temp=number[i]; //逐一取出未排序数组中元素
ter=i-1;//已排序数组的最后一位数字的下标
while(ter>=0&&temp<number[ter]) //从后一一比较,若小于,较大的数则往后移一位
{
number[ter+1]=number[ter];
ter–;
}
number[ter+1]=temp; //插入数值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值