如何通过递归二分搜索在数组中找不到它要查找的数字来防止段错误。
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/