#include <stdio.h>
#include <stdlib.h>
#define N 7
typedef int ElemType;
//49,38,65,97,76,13,27
void Merge(int *A,int low,int mid,int high){
static int B[N];
int i;
for(i=low;i<=high;i++){
B[i] = A[i];
}
int count = low;
int k = low;
int j = mid+1;
while(k<=mid && j<=high && count<=high){
if(B[k]<=B[j]){
A[count] = B[k];
k++;
count++;
}else{
A[count] = B[j];
j++;
count++;
}
}
while(k<=mid && count<=high){
A[count] = B[k];
k++;
count++;
}
while(j<=high && count<=high){
A[count] = B[j];
j++;
count++;
}
}
void MergeSort(int *A,int low,int high){
if(low<high){
int mid;
mid = (low+high)/2;
MergeSort(A,low,mid);
MergeSort(A,mid+1,high);
Merge(A,low,mid,high);
}
}
void print(int* a)
{
for(int i=0;i<N;i++)
{
printf("%3d",a[i]);
}
printf("\n");
}
// 归并排序
int main()
{
int A[7]={49,38,65,97,76,13,27};//数组,7 个元素
MergeSort(A,0,6);
print(A);
return 0;
}