高质量题解|查找x
2026-03-28 11:44:40
发布于:北京
6阅读
0回复
0点赞
题目大意
通过二分查找找出 的下标,否则输出
考纲知识点
输入输出、分支结构、循环结构、算术运算符、一维数组、二分查找、基础数据类型、变量的定义以及使用
数据范围
解题思路
定义 和 ,用来确定区间范围,变量 是中间值的下标
- 等于 ,输出 下标
- 小于 下标的值, 重新确定范围,因为 已经不等于了,所以从 开始
- 大于等于 下标的值, 重新确定范围,同理
如果以上情况都不符合到最后就代表着找不到 ,输出
参考程序
#include <bits/stdc++.h>
using namespace std;
int a[1010];
int main(){
int n,x;
cin >> n;
for(int i = 1;i <= n;i++){
cin >> a[i];
}
cin >> x;
//1确定查找范围
int left = 1,right = n;
while(left <= right){
//计算中简值
int mid = (left + right) / 2;
if(x == a[mid]){
cout << mid;
return 0;
}else if(x < a[mid]){
right = mid - 1;
}else{
left = mid + 1;
}
}
cout << -1;
return 0;
}
时间复杂度
(对数时间复杂度)
空间复杂度
(线性空间复杂度)
这里空空如也








有帮助,赞一个