在数组A[n]中查找值为k的元素,若找到则输出其位置i(1≤i≤n),否则输出0作为标志。cpp写出
时间: 2024-09-28 15:10:16 浏览: 49
这是一个常见的二分查找算法应用,用于在一个有序数组`A`中查找指定的值`k`。以下是使用C++实现的示例代码:
```cpp
#include <iostream>
// 二分查找函数
int binarySearch(int A[], int n, int k) {
int left = 0;
int right = n - 1;
while (left <= right) {
int mid = left + (right - left) / 2;
// 检查中间元素是否是目标值
if (A[mid] == k) {
return mid; // 返回元素的位置
} else if (A[mid] < k) {
left = mid + 1; // 目标值大于中间元素,向右半部分查找
} else {
right = mid - 1; // 目标值小于中间元素,向左半部分查找
}
}
// 如果没有找到目标值,返回0
return 0;
}
int main() {
int A[] = {1, 3, 5, 7, 9}; // 示例数组
int n = sizeof(A) / sizeof(A[0]);
int k = 5; // 查找的目标值
int index = binarySearch(A, n, k);
if (index != 0) {
std::cout << "Value " << k << " found at position " << index << std::endl;
} else {
std::cout << "Value " << k << " not found" << std::endl;
}
return 0;
}
```
在这个代码里,如果找到了`k`,函数会返回它的索引;如果没有找到,就返回0。
阅读全文