数据结构-排序

博客介绍了直接插入排序算法,该算法搜索和数据后移同时进行。每次将a[i]与a[i - 1]比较,若a[i] > a[i - 1]则a[0…i]有序;否则令j = i - 1,temp = a[i],边移动数据a[j]边向前搜索,当a[j] < a[i]时停止,将temp放到a[j + 1]处。

1、直接插入排序

搜索和数据后移同时进行。即每次a[i]先和前面一个数据a[i-1]比较,如果a[i] > a[i-1]说明a[0…i]也是有序的,无须调整。否则就令j=i-1,temp=a[i]。然后一边将数据a[j]向后移动一边向前搜索,当有数据a[j]<a[i]时停止并将temp放到a[j + 1]处。

void Insertsort2(int a[], int n)
{
	int i, j;
	for (i = 1; i < n; i++)
		if (a[i] < a[i - 1])
		{
			int temp = a[i];
			for (j = i - 1; j >= 0 && a[j] > temp; j--)
				a[j + 1] = a[j];
			a[j + 1] = temp;
		}
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值