#include<iostream>
using namespace std;
const int N = 20;
void Merge(int *ins,int *tmp,int startIndex,int midIndex,int endIndex){
int i = startIndex, j=midIndex+1, k = startIndex;
while(i!=midIndex+1 && j!=endIndex+1)
{
if(ins[i] <= ins[j])
tmp[k++] = ins[i++];
else
tmp[k++] = ins[j++];
}
while(i != midIndex+1)
tmp[k++] = ins[i++];
while(j != endIndex+1)
tmp[k++] = ins[j++];
for(i=startIndex; i<=endIndex; i++)
ins[i] = tmp[i];
}
void Merge_sort(int *ins,int *tmp,int SIndex,int EIndex){
int MIndex;
if(SIndex < EIndex)
{
MIndex = (SIndex + EIndex) / 2;
Merge_sort(ins, tmp, SIndex, MIndex);
Merge_sort(ins, tmp, MIndex+1, EIndex);
Merge(ins, tmp, SIndex, MIndex, EIndex);
}
}
int main()
{
freopen("E:\\in.txt","r",stdin);
int i,n=0,ins[N],tmp[N];
while(cin>>ins[n]) n++;
Merge_sort(ins,tmp,0,sizeof(ins)/sizeof(ins[0])-1);
for(i=0;i<n;i++)
cout<<ins[i]<<" ";
putchar('\n');
return 0;
}
归并排序
最新推荐文章于 2023-12-11 10:45:47 发布