33,311
社区成员
发帖
与我相关
我的任务
分享
void merge(int a[], int low, int mid, int high)
{
int n1 = mid - low + 1;
int n2 = high - mid;
int b[10];
int c[10];
int i, j, k;
for(i = 0; i < n1; i++)
b[i] = a[low+i-1];
for(i = 0; i < n2; i++)
c[i] = a[mid+i];
i = 0;
j = 0;
k = 0;
while((i < n1) && (j < n2) && (k < high))
{
if(b[i] < c[j])
{
a[k] = b[i];
i++;
}
else
{
a[k] = c[j];
j++;
}
k++;
}
}
void mergeSort(int a[], int low, int high)
{
int mid;
if(high >= low)
{
mid = (low + high)/2;
mergeSort(a, low, mid);
mergeSort(a, mid, high);
merge(a, low, mid, high);
}
}