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;
}
相关推荐
陌路202 分钟前
C++30 STL容器 -deque双端队列
开发语言·c++
AI视觉网奇6 分钟前
ue 自己制作插件 c++
c++·ue5
Insight7 分钟前
拒绝手动 Copy!一文吃透 PyTorch/NumPy 中的广播机制 (Broadcasting)
算法
CoovallyAIHub28 分钟前
工业视觉检测:多模态大模型的诱惑
深度学习·算法·计算机视觉
Jayden_Ruan35 分钟前
C++分解质因数
数据结构·c++·算法
微露清风1 小时前
系统性学习C++-第二十讲-哈希表实现
c++·学习·散列表
bubiyoushang8881 小时前
MATLAB实现雷达恒虚警检测
数据结构·算法·matlab
wu_asia1 小时前
编程技巧:如何高效输出特定倍数数列
c语言·数据结构·算法
清 澜1 小时前
c++高频知识点总结 第 1 章:语言基础与预处理
c++·人工智能·面试
AlenTech1 小时前
207. 课程表 - 力扣(LeetCode)
算法·leetcode·职场和发展