关于归并排序的一点问题
void mergesort(int a[], int first, int last, int temp[]) {
if (first < last)
{
int mid = (first + last) / 2;
mergesort(a, first, mid, temp); //左边有序 ?????不懂
mergesort(a, mid + 1, last, temp); //右边有序
mergearray(a, first, mid, last, temp); //再将二个有序数列合并
}
}
这是归并排序中的排序子函数,对其中的递归不是非常理解,那两个递归是怎样使左边和右边有序的?
这是网上一位高人对于那个递归的演示,但是这样我只看到通过递归把一列数分解成一个一个的数,没看到怎么使这一个一个的数有序的,貌似没有进行排序啊