利用折半查找算法在以下数组中查找元素18。 (12,15,17,18,19,25, 32,45,51,67,75) 用C++
时间: 2024-10-11 10:13:04 浏览: 56
折半查找算法,也称为二分搜索法,是一种在有序数组中查找特定元素的有效算法。假设我们有一个已排序的整数数组,例如:
```cpp
int arr[] = {12, 15, 17, 18, 19, 25, 32, 45, 51, 67, 75};
```
为了查找元素18,你可以按照以下步骤编写C++代码:
```cpp
#include <iostream>
// 定义函数,接受数组、开始索引和结束索引作为参数
bool binarySearch(int arr[], int low, int high, int target) {
if (high >= low) {
int mid = low + (high - low) / 2;
// 如果目标等于中间元素,返回true
if (arr[mid] == target)
return true;
// 如果目标小于中间元素,继续在左半部分查找
else if (arr[mid] > target)
return binarySearch(arr, low, mid - 1, target);
// 否则,在右半部分查找
else
return binarySearch(arr, mid + 1, high, target);
}
// 当目标不存在于数组中,返回false
return false;
}
int main() {
int arr[] = {12, 15, 17, 18, 19, 25, 32, 45, 51, 67, 75};
int size = sizeof(arr) / sizeof(arr[0]);
int target = 18;
if (binarySearch(arr, 0, size - 1, target)) {
std::cout << "Element found at index " << binarySearch(arr, 0, size - 1, target) << std::endl;
} else {
std::cout << "Element not found in the array." << std::endl;
}
return 0;
}
```
这段代码首先检查给定的目标值是否存在于数组中。如果存在,它会返回该元素的索引;如果不存在,将打印“Element not found in the array.”。
阅读全文