C语言,二路归并排序求详解啊!看不懂递归啊!到底是怎么个过程?_百度...
发布网友
发布时间:2022-05-14 05:13
我来回答
共1个回答
热心网友
时间:2022-05-22 02:58
mid的初始值为0,进入if循环之后,会首先判断大小,加入满足条件first<last时,mid的值就变成了
mid = (first+last)/2;然后会进入函数的调用,调用 merge_sort(arr, first, mid);函数,递归说白了就是反复的调用自己,知道条件不满足,跳出循环。调用merge_sort后,程序有进入到了void merge_sort(int arr[], unsigned int first, unsigned int last)不过此时无符号整形last的值就接收了midmid = (first+last)/2;的值了,下面的三个函数都是一样的。