c++二分搜索算法的非递归实现
时间: 2023-12-06 07:02:28 浏览: 89
二分搜索的递归和非递归实现
二分搜索算法的非递归实现需要使用循环来代替递归,其基本思路是将待查找区间不断减半,直到找到目标元素或者区间为空为止。具体实现可以参考以下代码:
```c
int binary_search(int arr[], int len, int target) {
int left = 0, right = len - 1;
while (left <= right) {
int mid = (left + right) / 2;
if (arr[mid] == target) {
return mid;
} else if (arr[mid] < target) {
left = mid + 1;
} else {
right = mid - 1;
}
}
return -1;
}
```
以上函数接受一个有序数组 arr,数组长度 len,以及待查找的目标元素 target,返回目标元素在数组中的下标,若不存在则返回 -1。
阅读全文