设计一个函数模板find,用于对一个有序数组采用二分法查找指定数据的元素下标
时间: 2024-03-02 09:54:24 浏览: 72
JS实现二分查找查找有序数组中的数字
好的,以下是实现代码:
```c++
template <typename T>
int find(T arr[], int size, T target) {
int left = 0, right = size - 1, mid;
while (left <= right) {
mid = left + (right - left) / 2;
if (arr[mid] == target) {
return mid;
} else if (arr[mid] < target) {
left = mid + 1;
} else {
right = mid - 1;
}
}
return -1; // 没有找到目标元素,返回-1
}
```
这个函数模板接受一个泛型数组 `arr`,数组长度 `size` 和要查找的目标值 `target`,返回目标值在数组中的下标,如果没有找到则返回-1。函数使用经典的二分法查找算法实现。
阅读全文