插入排序

直接插入排序是一种简单的插入排序法。基本思想为:将待排序的记录按顺序逐个插入到已排好序的有序序列中,直到所有记录均插入,就得到一个新的有序的序列了。


算法思路:

(1)将待插入的记录(第i条数据)存到临时变量temp;

(2)从j(初始j=i-1)的位置开始往前查找合适的插入位置 (j--,一直到 temp>t[j]  的位置,都将t[j]往后移动一个位置)。

(3)将temp插入t[j+1]的位置,此时前j+1位都是有序的。

*算法使用双重循环,外循环进行n-1趟插入排序,内循环用于进行每一趟插入排序,即大小比较和记录后移,完成一次记录的插入过程。


void crinsert(int r[],int n)
{
	int i,j,temp;
	for(i=1;i<n;i++)
	{
		temp= r[i];
		j = i-1;
		while(j>=0 && r[j]>temp)
		{
			r[j+1] = r[j];
			j--;
		}
		r[j+1] = temp;
	}
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值