插入排序的递归算法

一、算法思想


由插入排序的基本思想可以得到它的递归算法:

确定前面的数是已经排好序了的,从当前数开始,依次一个个的插入到前面的数中。

 

二、代码

//插入排序的递归算法
void insert(vector<int>& a, int x=1)				
{                                                   //第一个参数为向量,第二个参数为将要向前插入的数
	if(x >= (int)a.size())			    //判断是否已经到了向量的最大值
		return;				    //是即返回,程序结束
	int temp = a[x],j;			    //定义变量,temp存储当前数值
	for(j = x; j > 0 && a[j-1] > temp; j--)	    //和插入排序普通算法一样,从当前数开始,从后往前插入
		a[j] = a[j-1];	  		    //通过赋值,节省时间
	a[j] = temp;			       	    //找到正确位置后,赋值,
	insert(a, x+1);				    //递归,开始插入下一个数
}


  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值