#include <stdio.h>
#include<string.h>
#include<stdlib.h>
#include<time.h>
void merge(int a[],int l,int r,int mid)
{
int ax[1000],i,j,k;
for(k=l;k<=r;k++)
ax[k-l]=a[k];
i=l;
j=mid+1;
for(k=l;k<=r;k++)
{
if(i>mid)
{
a[k]=ax[j-l];
j++;
}
else if(j>r)
{
a[k]=ax[i-l];
i++;
}
else if(ax[i-l]>ax[j-l])
{
a[k]=ax[j-l];
j++;
}
else
{
a[k]=ax[i-l];
i++;
}
}
}
void merge_sort(int a[],int l,int r)
{
if(l>=r)
return;
int mid =(l+r)/2;
merge_sort(a,l,mid);
merge_sort(a,mid+1,r);
merge(a,l,r,mid);
}
void mergesort(int a[],int l,int r)
{
merge_sort(a,l,r-1);
}
int main()
{
int a[105],n,i,sum=1;
//freopen("C:/Users/111/Desktop/text/input.txt", "r", stdin);
//freopen("C:/Users/111/Desktop/text/output.txt", "w", stdout);
while(~scanf("%d",&n),n!=-1){
for(i=0;i<n;i++)
scanf("%d",&a[i]);
mergesort(a,0,n);
printf("Case%d:%d\n",sum,n);
for(i=0;i<n;i++)
printf("%d ",a[i]);
printf("\n");
sum++;
}
//fclose(stdin);//关闭重定向输入
//fclose(stdout);//关闭重定向输出
system("pause");
return 0;
}
06-19
12万+
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
03-12
1292
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
02-15
1453
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)