二分查找标程

二分查找有序序列中的x或其后缀

#include<bits/stdc++.h>
using namespace std;
int l,r,n,m,x,a[1001];
int Check(int l,int r){
	while (l < r){
		int mid = (l + r) / 2;
		if (a[mid] >= x) r = mid; else l = mid + 1;
	}
	return a[l];
}
int main(){
	cin >> n >> m;
	for(int i = 1;i <= n;i++)
		cin >> a[i];
	for(int i = 1;i <= m;i++){
		cin >> l >> r >> x;
		cout << Check(l,r);
	}
	return 0;
}

二分查找有序序列中的x或其前驱

#include<bits/stdc++.h>
using namespace std;
int l,r,n,m,x,a[1001];
int Check(int l,int r){
	while (l < r){
		int mid = (l + r +1) / 2;
		if (a[mid] < x) l = mid; else r = mid + 1;
	}
	return a[l];
}
int main(){
	cin >> n >> m;
	for(int i = 1;i <= n;i++)
		cin >> a[i];
	for(int i = 1;i <= m;i++){
		cin >> l >> r >> x;
		cout << Check(l,r);
	}
	return 0;
}

posted @ 2023-08-23 09:47  CultReborn  阅读(11)  评论(0)    收藏  举报