Discuz! Board

 找回密码
 立即注册
查看: 50|回复: 0

11

[复制链接]

660

主题

846

帖子

243万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2435557

烈空座 Lv:100
发表于 2025-3-1 08:42:52 | 显示全部楼层 |阅读模式
[C++] 纯文本查看 复制代码
#include<bits/stdc++.h>          
using namespace std;
int a[1000000];
int main()
{
	int n;
	cin>>n;
	int mid;
	for (int i=1;i<=n;i++)
	{
		cin>>a[i];
	}
	int x;
	cin>>x;
	int l=1;
	int r=n;
	while (1)
	{
		mid=l+(r-l)/2;
		if(a[mid]==x) 
		{
			cout<<mid;
			break;
		}
		else if(x>a[mid]) l=mid+1;
		else if(x<a[mid]) r=mid-1;
		if(l>r) 
		{
			cout<<-1;
			break;
		}
	}
    return 0;
}

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|DiscuzX

GMT+8, 2025-5-29 05:27 , Processed in 0.058657 second(s), 28 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.. 技术支持 by 巅峰设计

快速回复 返回顶部 返回列表