插入排序的递归算法

Posted zgljl2012

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了插入排序的递归算法相关的知识,希望对你有一定的参考价值。

一、算法思想


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

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

 

二、代码

//插入排序的递归算法
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);				    //递归,开始插入下一个数


以上是关于插入排序的递归算法的主要内容,如果未能解决你的问题,请参考以下文章

排序算法:直接插入排序归并排序(递归与非递归实现)

排序算法:直接插入排序归并排序(递归与非递归实现)

排序算法:直接插入排序归并排序(递归与非递归实现)

排序算法:直接插入排序归并排序(递归与非递归实现)

利用二分法实现插入排序算法(二分法使用递归来实现)

二叉排序树的定义及基本操作(构造查找插入删除)递归及非递归算法