您的位置:首页 > 其它

Mergesort-归并排序

2011-11-25 11:26 197 查看
#include<iostream>

using namespace std;

void Merge(intr[],int r1[],int s,int m,int t)
{
inti=s;
intj=m+1;
intk=s;
while(i<=m&&j<=t){
if(r[i]<=r[j]) r1[k++]=r[i++];
elser1[k++]=r[j++];
}
if(i<=m)
while(i<=m)r1[k++]=r[i++];
else
while(j<=t)r1[k++]=r[j++];
for(intl=s;l<=t;l++)
r[l]=r1[l];
}
void MergeSort(intr[],int r1[],int s,int t)
{
if(s==t)r1[s]=r[s];
else{
intm=(s+t)/2;
MergeSort(r,r1,s,m);
MergeSort(r,r1,m+1,t);
Merge(r1,r,s,m,t);
}
}

int main()
{
intr[8]={10,3,5,1,9,34,54,565},r1[8];
MergeSort(r,r1,0,7);
for(intq=0;q<8;q++)
cout<<""<<r[q];
return1;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: