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;
}
相关推荐
ue星空11 分钟前
全局描述符表GDT (Global Descriptor Table)
c++
m0_5913389113 分钟前
day8鹏哥C语言--函数
c语言·开发语言·算法
_OP_CHEN16 分钟前
算法基础篇:(二)基础算法之高精度:突破数据极限
算法·acm·算法竞赛·高精度算法·oj题
一只老丸18 分钟前
HOT100题打卡第30天——技巧
算法
西岭千秋雪_23 分钟前
Zookeeper数据结构
java·数据结构·分布式·zookeeper
Bi_BIT30 分钟前
代码随想录训练营打卡Day38| 动态规划part06
算法·动态规划
oioihoii31 分钟前
C++中的多态:动态多态与静态多态详解
java·开发语言·c++
手握风云-1 小时前
回溯剪枝的“减法艺术”:化解超时危机的 “救命稻草”(三)
算法·剪枝
TinyPiXOS开发者联盟1 小时前
轻量级嵌入式系统的 Lottie 动画实现
linux·c++·动画·嵌入式开发·lottie·tinypixos·tpgui
元亓亓亓1 小时前
LeetCode热题100--46. 全排列--中等
算法·leetcode·职场和发展