【发布时间】:2016-08-11 04:07:58
【问题描述】:
在merge sort和quicksort的主函数中,我们使用以下递归
mergesort(int * arr, int low, int high){
if(low<high){
//mergesort();
//mergesort();
//merge();
}
}
但是,我使用了它的替代方法,即:
mergesort(int * arr, int low, int high){
if(low==high){
return;
}
//mergesort();
//mergesort();
//merge();
}
我相信只要低等于高,递归就会停止。并将开始执行之前调用的工作。 但它没有这样工作! 知道为什么吗?
【问题讨论】:
-
为什么不在调试器中运行程序并查看
low和high值?当你这样做时,答案应该很快就会变得明显。 -
显示递归调用的参数。
标签: c recursion quicksort mergesort