在C++中实现二分查找函数可以按照以下步骤进行:
- 定义一个函数,接收一个有序数组和要查找的目标值作为参数。
- 初始化两个指针,分别指向数组的起始和结束位置。
- 在一个循环中,比较中间元素与目标值的大小关系,若相等则返回中间元素的索引,若小于目标值则将起始指针移动到中间元素的右边一个位置,若大于目标值则将结束指针移动到中间元素的左边一个位置。
- 循环直到起始指针小于等于结束指针,此时若目标值存在于数组中则返回目标值的索引,否则返回-1表示未找到。
以下是一个简单的二分查找函数的C++实现代码示例:
int binarySearch(int arr[], int target, int size) {
int left = 0;
int right = size - 1;
while (left <= right) {
int 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。