c - 多次递归调用函数
问题描述
我是编程新手,请解释一下以下递归函数的工作原理。该函数被递归调用两次,第一次递归调用之后的语句会被执行吗?
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);
}
解决方案
请参阅堆栈溢出中的递归示例链接。 递归函数的例子
你想在代码中实现什么?递归函数应该调用函数本身,并且它应该具有停止的条件,否则它将进入无限循环。您编写的代码两次调用了相同的函数,这是不正确的。您应该在停止条件下调用该函数一次。
推荐阅读
- c# - 如何使用 bouncycastle AES-GCM 正确加密和解密大块数据
- graphql - 如何根据存在来调节 GraphQL 突变?
- javascript - 即使将字符串打印到控制台,JavaScript也会返回一个promise
- apache-kafka - Kafka Streams 不断进入错误状态,应用程序无法启动
- bootstrap-4 - 引导网格类没有使页面响应
- angular - 根据“子”表中的值过滤firebase父母 - Angularfire
- haskell - 递归未终止
- java - 使用带有布尔方法的链表
- amazon-web-services - S3 事件通知的实时性
- macos - Mac finder windows 类型显示为灰色 这让我发疯