gpt4 book ai didi

c - 这些是等价的吗?

转载 作者:行者123 更新时间:2023-11-30 15:06:40 25 4
gpt4 key购买 nike

归并排序快速排序的主函数中,我们使用以下内容进行递归

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 时,递归就会停止。并将开始执行之前调用的工作。但它并没有这样工作!知道为什么吗?

最佳答案

在代码的第一部分中,if block 仅在 low 小于 high 时才起作用。因此,如果您想重写检查,您需要确保每当 low 等于或大于 high 时,您的函数就应该停止递归调用。

尝试这样检查。

if(low>=high){   //you have to check if low becomes greater or equal to high too!
return;
}

关于c - 这些是等价的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38887109/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com