c++ - 处理递归二分搜索中的段错误

标签 c++ binary-search

如何通过递归二分搜索在数组中找不到它要查找的数字来防止段错误。

int recursive_binary_search(int A[], int beg, int end, int key)
{
    if(end < beg)
        return -1;
    int mid = beg + end / 2;
    if(A[mid] == key)
        return mid;
    else if(A[mid] > key)
        return recursive_binary_search(A, beg, mid - 1, key);
    else
        return recursive_binary_search(A, mid + 1, end, key);
}

最佳答案

下面的代码可能就足够了,

int recursive_binary_search(int A[], int beg, int end, int key)
{
    if(end < beg)
        cout<<"\nKey not Found";
    int mid = beg + end / 2;
    if(A[mid] == key)
        return mid;
    else if(A[mid] > key)
        return recursive_binary_search(A, beg, mid - 1, key);
    else
        return recursive_binary_search(A, mid + 1, end, key);
}

关于c++ - 处理递归二分搜索中的段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18815979/

相关文章:

c++ - 如何从不同的函数而不是 main() 开始执行 c/c++ 中的程序

algorithm - 为什么在 SAP ABAP 中有重复条目的情况下,使用二进制搜索读取表会返回第一个条目?

algorithm - 二进制搜索问题?

javascript - 多维字典中的二分查找?

c++ - `void func() throw(type)` 有什么意义?

c++ - decltype 在不生成代码的模板方法上抛出错误

c++ - 可靠的 WinSock API 确定我的机器上使用的字节序

c++ - 在 gnu radio 中编译出树模型时出现 CMake 错误

c - 在 C 中使用二进制搜索算法的简单猜数游戏

algorithm - 在循环排序数组中搜索元素