【发布时间】:2022-01-14 13:53:23
【问题描述】:
我正在做一个关于使用 C++ 进行二进制搜索的问题,但我想知道是否有更有效的方法来实现它。
我的代码如下:
int binarySearch(int arr[], int l, int r, int x) {
if (r >= l) {
int mid = l + (r - l) / 2;
if (arr[mid] == x) {
return mid;
} else if (arr[mid] > x) {
return binarySearch(arr, l, mid - 1, x);
} else {
return binarySearch(arr, mid + 1, r, x);
}
} else {
return -1;
}
}
【问题讨论】:
-
非常感谢!
-
二分查找不需要递归。毫无疑问,摆脱递归更“高效”(假设编译器不够聪明,无法为你做这件事)。
-
你接受的答案是错误的。
标签: c++ performance binary-search