本人刚学习高级语言程序设计。。。
打算将自己学习过程与心得与大家分享一下。。。
#include<stdio.h>
#include<limits.h>
void merge_sort(int a[],int start,int end)
{
if(start < end)
{
int m = (start + end)/2,i,j;
merge_sort(a,start,m);
merge_sort(a,m + 1,end);
int L[m - start + 2],R[end - m + 1];
for(i = 0; i < m - start + 1; i++) L[i] = a[start + i];
L[i] = INT_MAX;
for(i = 0; i < end - m; i++) R[i] = a[m + 1 + i];
R[i] = INT_MAX;
for(i = j = 0; i + j < end - start + 1;)
{
if(L[i] < R[j]) a[start + i + j] = L[i++];
else a[start + i + j] = R[j++];
}
}
}
int main()
{
int a[1000],n,i;
scanf("%d",&n);
for(i = 0;i < n; i++) scanf("%d",a+i);
merge_sort(a,0,n-1);
for(i = 0;i < n; i++) printf("%d ",a[i]);
return 0;
}