当前位置: 首页 > news >正文

1236 - 二分查找

题目描述

请在一个有序递增数组中(不存在相同元素),采用二分查找,找出值 xx 的位置,如果 xx 在数组中不存在,请输出 -1 !

输入

第一行,一个整数 nn ,代表数组元素个数(n≤106n≤106)

第二行,nn 个数,代表数组的 nn 个递增元素(1≤1≤数组元素值≤108≤108)

第三行,一个整数 xx ,代表要查找的数(0≤x≤1080≤x≤108)

输出

xx 在数组中的位置,或者 -1

样例

输入

复制

10
1 3 5 7 9 11 13 15 17 19
3
输出

复制

2

说明

请尝试采用递归和非递归两种方式来实现二分查找

来源

二分 分治

题解:

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

相关文章:

  • jenkins配置连接k8s集群
  • LeetCode和为k的字数组(560题)
  • 【hello git】git 扫盲(add、commit、push、reset、status、log、checkout)
  • C语言学习笔记:初阶指针
  • 在 Maven 中使用 <scope> 元素:全面指南
  • “深入浅出”系列之Linux篇:(10)基于C++实现分布式网络通信RPC框架
  • 软件开发工程师与AI工具
  • MySQL字段内容加解密使用性能验证
  • Linux学习记录1
  • Manus AI Agent介绍总结
  • js正则表达式--标识符(6)
  • 浏览器WEB播放RTSP
  • 键值对(C++实现)
  • 鸿蒙应用开发深度解析:API 14核心特性与实战指南
  • C++ Primer Plus 编程练习题 第三章 处理数据
  • 某得物 - WebView App H5调试
  • dataframe能否把列表里所有的NaN换成列表上一位的数字?
  • 蓝桥杯备考:动态规划路径类dp之迷雾森林
  • ubuntu 20.04下ZEDmini安装使用
  • 【 <一> 炼丹初探:JavaWeb 的起源与基础】之 JSP 中的内置对象:request、response、session 的使用示例
  • 怎么把自己做的网站放到网上/今日国际新闻事件
  • 广南网站制作/怎样在百度上打广告
  • 学校网站页面设计/免费关键词搜索引擎工具
  • 为何公司做的网站很丑/google推广专员招聘
  • 域名注册的网站/网上销售平台怎么做
  • 团购网站案例/百度快照入口