您的位置:首页 > 其它

55.插入排序与归并排序

2016-03-08 22:36 162 查看
插入排序

代码:

#include

using namespace std;

int main()

{

int a[101];

int n;

cin>>n;

for(int i=1;i<=n;++i)

cin>>a[i];

for(int i=2;i<=n;++i)

{

int x=a[i];

int j=i-1;

while(x=1)

{

a[j+1]=a[j];

j--;

}

a[j+1]=x;

}

for(int i=1;i<=n;++i)

cout<<a[i]<<" ";

return 0;

}

归并排序

代码:

#include

using namespace std;

#include

void gb(int,int);

int a[101],r[101];

int main()

{

int n;

cin>>n;

for(int i=1;i<=n;++i)

cin>>a[i];

gb(1,n);

for(int i=1;i<=n;++i)

cout<<a[i]<<" ";

return 0;

}

void gb(int s,int t)

{

if(s==t) return;

int m=(s+t)/2;

gb(s,m);gb(m+1,t);

int i=s,k=s,j=m+1;

while(i<=m&&j<=t)

{

if(a[i]

{

r[k]=a[i];

i++;

k++;

}

else {

r[k]=a[j];

j++;

k++;

}

}

while(i<=m)

{

r[k]=a[i];

i++;k++;

}

while(j<=t)

{

r[k]=a[j];

j++;k++;

}

for(int i=s;i<=t;++i)

a[i]=r[i];

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