算法导论----<递归插入>及实例

Code:

/*
插入递归
INSERTION(A,p,r)
for j = p to r
do key = A[j]
i = j-1
while i > 0 and A[i] >key
do A[i+1] = A[i]
i = i - 1
A[i+1] = key


INSERTION-SORT(A,p,r)
if p<r
r = r-1
INSERTION-SORT(A,p,r)
INSERTION(A,p,r) 


*/


#include <iostream>
#include <stdlib.h>
using namespace std;
int i,j,key;
/*
void insertion(int *A,int r)
{
int key;
int i;
if(r==1)
{
return;
}
insertion(A,r-1);
key = A[r-1];
for(i = r-2;i>=0 && key<A[i];i--)
{
A[i+1] = A[i];
}
A[i+1] = key;
}
*/
void insertion(int *A,int p,int r){
for(j=p;j<=r;j++)
{
key = A[j];
i = j-1;
while(i>=0 && A[i]>key)
{
A[i+1] = A[i];
i--;
}
A[i+1] = key;
}
}
void insertionsort(int *A,int p,int r)
{
if(p<r)
{
r--;
insertionsort(A,p,r);
insertion(A,p,r);
}
}


int main(){
int A[10] = {99,9,8,7,66,5,4,3,2,1};
insertion(A,0,9);
for( j=0;j<10;j++)
{
cout<<A[j]<<" ";
}
return 0;
}


时间复杂度O(n^2)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值