插入排序的递归算法

一、算法思想


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

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

 

二、代码

//插入排序的递归算法
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);				    //递归,开始插入下一个数
}
    原文作者:递归算法
    原文地址: https://blog.csdn.net/zgljl2012/article/details/21321265
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞