( 30分 ) 某数组已按照从大到小的顺序排列,其数组元素为:{98,87,81,79,52,49,33,21,18,6},编程使用二分查找法查找81是否在该数组中,若在该数组中,输出“81在该数组中的第X位”(X为数组中的第几个数),否则输出“81不在数组中”。
时间: 2024-05-14 12:19:39 浏览: 7
您好,根据您的要求,我理解您需要使用二分查找法查找这个数组中是否包含数字81。以下是相应的C++代码:
```
#include <iostream>
using namespace std;
int main() {
int arr[] = {98,87,81,79,52,49,33,21,18,6};
int n = sizeof(arr) / sizeof(arr[0]); // 数组长度
int target = 81; // 要查找的数
int left = 0, right = n - 1; // 二分法的左右指针
while(left <= right) {
int mid = left + (right - left) / 2; // 中间位置的索引
if(arr[mid] == target) { // 找到了目标数字,输出其索引
cout << target << "在该数组中的第" << mid + 1 << "位" << endl;
return 0;
} else if(arr[mid] < target) { // 目标数字在右边部分
right = mid - 1;
} else { // 目标数字在左边部分
left = mid + 1;
}
}
// 没有找到目标数字
cout << target << "不在数组中" << endl;
return 0;
}
```
这个程序会输出:81在该数组中的第3位,因为在第3个位置找到了数字81。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)