直接上代码:
}
while(f>m&&last<=e){
temp[i]=A[last];
i++;
last++;
}
while(f<=m&&last>e){
temp[i]=A[f];
i++;
f++;
}
for(i=0;first<=e;i++,first++){
A[first]=temp[i];
}
}
void Merge_Sort(int *a,int f,int e ){
int mid=(e+f)/2;
if(f<e){
Merge_Sort(a,f,mid);
Merge_Sort(a,mid+1,e);
Merge(a,f,mid,e);
}
}
int main(){
int a[100];
int n;//n为输入的数组的长度;
printf("输入要排序的数组长度(小于100个)\n");
scanf("%d",&n);
for(int i=0;i<n;i++){
scanf("%d",&a[i]);
}
printf("未排序前数组元素顺序额为:\n");
for(int i=0;i<n;i++){
printf("%d ",a[i]);
}
Merge_Sort(a,0,n-1);
printf("\n\n排序后的数组元素顺序为:\n");
for(int i=0;i<n;i++){
printf("%d ",a[i]);
}
printf("\n");
getchar();
}