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;
}
相关推荐
REDcker5 分钟前
C++ 崩溃堆栈捕获库详解
linux·开发语言·c++·tcp/ip·架构·崩溃·堆栈
WW_千谷山4_sch10 分钟前
洛谷P8653:[模板] [蓝桥杯 2017 国 C] 分考场(染色最小色数)
c++·算法·蓝桥杯·深度优先
兵哥工控13 分钟前
MFC高精度方波发生器实现
c++·mfc
汉克老师37 分钟前
GESP2025年12月认证C++五级真题与解析(判断题1-10)
c++·链表·贪心算法·排序·gesp5级·gesp五级
hk11241 小时前
【NLP/PatternRec】2026年度语义鸿沟分析与模糊模式识别基准索引 (Benchmark Index)
算法·自然语言处理·数据集·知识图谱·模式识别
hetao17338371 小时前
2025-12-31~2026-1-2 hetao1733837 的刷题笔记
c++·笔记·算法
争不过朝夕,又念着往昔1 小时前
C++AI
开发语言·c++·人工智能
敲上瘾1 小时前
C++11线程库指南:线程、锁、原子操作与并发编程实战
开发语言·c++·多线程
yyy(十一月限定版)1 小时前
算法——差分
算法
yyy(十一月限定版)1 小时前
算法——模拟
算法