gpt4 book ai didi

c++ - 为什么此递归没有得到其基本情况?

转载 作者:行者123 更新时间:2023-12-02 10:06:06 27 4
gpt4 key购买 nike

我正在尝试实现合并排序功能。这是我的代码:

void
merge_sort(int a[], int l, int u)
{
int mid = (l + u) / 2;
if (mid) {
merge_sort(a, l, mid);
merge_sort(a, mid + 1, u);
merge(a, l, mid, u);
}
}

我检查 mid是否获得值 0,但再次获得其初始值并变成无限循环。

最佳答案

你应该检查的是

if (mid != l) {
// ...
}

请参阅完整的合并排序实现 here

编辑假定 u不在要排序的元素范围内。如果是,则应测试 if (l < u)

关于c++ - 为什么此递归没有得到其基本情况?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60135698/

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