排序算法

插入排序

  • step1:假设数组 a r r a y [ 0 ] , a r r a y [ 1 ] , ⋯   , a r r a y [ j − 1 ] array[0],array[1],\cdots,array[j-1] array[0],array[1],,array[j1]已从小到大排好序;
  • step2:令 k e y = a r r a y [ j ] , j = 1 , 2 , 3 , ⋯   , key=array[j],j=1,2,3,\cdots, key=array[j],j=1,2,3,, i = j − 1 , j − 2 , ⋯   , 1 , 0 i=j-1,j-2,\cdots,1,0 i=j1,j2,,1,0,比较 k e y key key a r r a y [ i ] array[i] array[i]的大小;
    i f      k e y > a r r a y [ i ] if~~~~key >array[i] if    key>array[i] 那么我们直接将 a r r a y [ j ] array[j] array[j]插入到 a r r a y [ j ] array[j] array[j],这样 a r r a y [ 0 ] , a r r a y [ 1 ] , ⋯   , a r r a y [ j − 1 ] , a r r a y [ j ] array[0],array[1],\cdots,array[j-1],array[j] array[0],array[1],,array[j1],array[j]就已全部排好序;
    e l s e     else~~~ else    那么我们就逐个比较 k e y , a r r a y [ i ] , i = j − 1 , j − 2 , . . . 0 key,array[i],i=j-1,j-2,...0 key,array[i],i=j1,j2,...0每比较一次,将 a r r a y [ i ] array[i] array[i]后移一位。直到 k e y key key放到合适的位置。

下面直接看C代码

void InsertSort(double* array,int used_number)
{
	for(int i = 1;i<used_number;i++)
	{
		double key = array[i];
		int j = i-1;
		while(j>=0&&array[j]>key)
		{
		      array[j+1]=array[j];
		      j=j-1;
	}
	array[i+1] = key;
   }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值