#include <bits/stdc++.h>
using namespace std;
int a[]={9,5,8,2,7,3,4,1};
int b[8];
void merge(int a[],int s,int m,int e,int tmp[])
{
int p1=s,p2=m+1;
int p=0;
while(p1<=m&&p2<=e)
{
if(a[p1]<a[p2])
tmp[p++]=a[p1++];
else
tmp[p++]=a[p2++];
}
while(p1<=m)
tmp[p++]=a[p1++];
while(p2<=e)
tmp[p++]==a[p2++];
for(int i=0;i<e-s+1;i++)
a[s+i]=tmp[i];
}
void mergeSort(int a[],int s,int e,int tmp[])
{
if(s<e)
{
int mid=s+(e-s)/2;
mergeSort(a,s,mid,tmp);
mergeSort(a,mid+1,e,tmp);
merge(a,s,mid,e,tmp);
}
}
int main()
{
int len=sizeof(a)/sizeof(int);
mergeSort(a,0,len-1,b);
for(int i=0;i<=len-1;i++)
cout<<a[i]<<" ";
return 0;
}
归并排序
最新推荐文章于 2023-09-03 20:36:33 发布