```cpp
include using namespace std; // 二分法查找函数 int binarySearch(int arr[], int left, int right, int target) { 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; } } // 目标值不存在于数组中,返回-1 return -1; } int main() { int arr[] = {2, 5, 8, 12, 16, 23, 38, 56, 72, 91}; int target = 23; int arrSize = sizeof(arr) / sizeof(arr); // 在有序数组中查找目标值 int result = binarySearch(arr, 0, arrSize - 1, target); if (result != -1) { cout << "目标值 " << target << " 在数组中的索引为: " << result << endl; } else { cout << "目标值 " << target << " 不存在于数组中" << endl; } return 0; } ``` 代码解释: `binarySearch` 函数接受一个有序数组 `arr`、左边界 `left`、右边界 `right` 和目标值 `target` 作为参数。 使用 `while` 循环在数组中查找目标值,直到 `left` 大于 `right`。 计算中间索引 `mid`,并根据 `arr[mid]` 与 `target` 的关系调整 `left` 或 `right`。 如果找到目标值,返回其索引;否则返回 `-1`。 定义一个有序数组 `arr` 和目标值 `target`。 计算数组的大小 `arrSize`。 调用 `binarySearch` 函数进行查找,并根据返回值输出结果。 这个示例代码展示了如何在C++中实现二分法查找,适用于有序数组。你可以根据需要修改数组和目标值进行测试。函数定义
主函数