1010: 折半查找的实现

解法:

cpp 复制代码
#include<iostream>
#include<vector>
using namespace std;
void solve() {
	int n;
	cin >> n;
	vector<int> vec(n);
	for (int& x : vec) cin >> x;
	int x;
	cin >> x;
	int l = 0, r = n-1, cnt = 0;
	while (l <= r) {
		cnt++;
		int mid = l + (r - l) / 2;
		if (vec[mid] > x) 
			r = mid - 1;
		else if (vec[mid] < x)
			l = mid + 1;
		else {
			cout << mid << endl;
			cout << cnt;
			return;
		}
	}
	cout << -1 << endl;
	cout << cnt;
}
int main() {
	solve();
	return 0;
}
相关推荐
星河耀银海几秒前
C++基础数据类型与变量管理:内存安全与高效代码的基石
java·开发语言·c++
jimy14 分钟前
消息队列Message Queue(MQ),队列链表(queue),消费者,生产者
数据结构·链表
小欣加油4 分钟前
leetcode 面试题17.16 按摩师
数据结构·c++·算法·leetcode·动态规划
飞Link10 分钟前
数据合成中的通用模型蒸馏、领域模型蒸馏和模型自我提升
算法·数据挖掘
CSDN_RTKLIB10 分钟前
【字符编码】文本文件与二进制文件
c++·qt
keven-wang10 分钟前
嵌入式-POCO C++开源库
开发语言·c++·开源·poco
夏鹏今天学习了吗11 分钟前
【LeetCode热题100(80/100)】完全平方数
算法·leetcode·职场和发展
sin_hielo12 分钟前
leetcode 3454(扫描线模板题:矩形面积并)
数据结构·算法·leetcode
小则又沐风a16 分钟前
数据结构->栈
数据结构
CSDN_RTKLIB16 分钟前
【字符编码】编译器解析字符的底层逻辑
c++