您的位置:首页 > 其它

算法——排序(一)直接插入排序

2016-06-15 09:58 337 查看
一、直接插入排序

时间复杂度 和 平均时间复杂度 O(n2)

空间复杂读O(1)  稳定排序

<pre name="code" class="cpp">#include <iostream>
#include <vector>
#include <cstdlib>
using namespace std;

void InSort ( int* L,int n) {
//对数组L进行直接插入排序
int i,j;
for(i=2;i<=n;i++){
if(L[i]<L[i-1]){
L[0]=L[i];
L[i]=L[i-1];
for(j=i-2;L[j]>L[0];j--){
L[j+1]=L[j];
}
L[j+1]=L[0];
}
}
}

int  main()
{
int a[100],n=0;
a[0]=0;
cout<<"输入数据的大小:"<<endl;
cin>>n;
cout<<"输入需要排序的数据:"<<endl;
for(int i=1;i<=n;i++){
cin>>a[i];
}
cout<<"输出原数据:"<<endl;
for(int i=0;i<=n;i++){
cout<<a[i]<<endl;
}
InSort(a,n);
cout<<"排序后数据:"<<endl;
for(int i=1;i<=n;i++){
cout<<a[i]<<endl;
}
return 0;
system("pause");
}


                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: