c++二分查找通用函数
时间: 2024-10-13 16:01:36 浏览: 33
折半查找示例代码C语言和c++
C++中的二分查找也称为折半搜索,是一种在有序数组中查找特定元素的高效算法。其基本思想是从数组的中间元素开始比较,如果目标值小于中间值,则在左半部分继续查找;如果大于则在右半部分查找,直到找到目标值或确定目标不存在于数组中。下面是一个简单的通用二分查找函数的伪代码示例:
```cpp
template <typename T>
int binarySearch(T arr[], int left, int right, const T& target) {
if (right >= left) {
int mid = left + (right - left) / 2;
if (arr[mid] == target)
return mid; // 找到目标,返回索引
else if (arr[mid] > target)
return binarySearch(arr, left, mid - 1, target); // 目标在左半部分,递归查找
else
return binarySearch(arr, mid + 1, right, target); // 目标在右半部分,递归查找
}
return -1; // 如果未找到目标,返回-1表示不在数组内
}
```
这个函数接受一个已排序的数组`arr`、两个指针的边界`left`和`right`,以及要查找的目标值`target`。它首先计算中间位置,然后根据目标值与中间值的关系决定是在左半部分还是右半部分继续查找。
阅读全文