首页 > 解决方案 > 多次递归调用函数

问题描述

我是编程新手,请解释一下以下递归函数的工作原理。该函数被递归调用两次,第一次递归调用之后的语句会被执行吗?

void sort(int low, int high) {
   int mid;

   if(low < high) {
      mid = (low + high) / 2;
      sort(low, mid);
      sort(mid+1, high);
      merging(low, mid, high);
   } else { 
      return;
   }   
}
void main()
{
   sort(0, 10);
}

标签: crecursionlogic

解决方案


请参阅堆栈溢出中的递归示例链接。 递归函数的例子

你想在代码中实现什么?递归函数应该调用函数本身,并且它应该具有停止的条件,否则它将进入无限循环。您编写的代码两次调用了相同的函数,这是不正确的。您应该在停止条件下调用该函数一次。


推荐阅读