算法导论----<递归插入>及实例
2016-04-09 16:57
260 查看
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)
/*
插入递归
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)
相关文章推荐
- js测试
- 电梯调度问题之成长总结篇(二)
- Myeclipse里导入jQuery.js 时出现错误打红叉的解决方法
- Linux就这个范儿 第16章 谁都可以从头再来--从头开始编译一套Linux系统 nsswitch.conf配置文件
- c/c++字符、字符串输入输出
- 转发 重定向
- C语言求向量和的两则问题解答分享
- 使用Java语言编写一款日记软件
- JavaScript基础之函数与数组
- psr-4
- MySQL(help?)
- Git 2.0 更改 push default 为‘simple’
- Java 爬虫 菜逼教程 00
- CGAL编译与配置
- SDOI2016 Round1 滚粗记
- JQuery解析XML数据的几个例子
- C#中使用DES和AES加密解密
- iOS - + initialize 与 +load
- UITextField点击return后注销第一响应者
- 软件工程学习进度条