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

LeetCode(704):二分查找

二分查找

题目链接

题目:给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target  ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。

#include<stdio.h>
//左闭右闭 [left,right] 
int search(int *nums,int n,int target){
	int left=0;
	int right=n-1;//****区别 
	while(left<=right){//****区别 
		int mid=(left+right)/2;
		if(nums[mid]==target)
			return mid;
		else if(nums[mid]<target)
			left=mid+1;
		else if(nums[mid]>target)
			right=mid-1;//****区别 
	}
	return -1;
} 

//左闭右开 [left,right)
int search(int *nums,int n,int target){
	int left=0;
	int right=n;//定义target在左闭右开的区间里,即:[left, right)
	while(left<right){//left==right时,区间[left, right)属于空集,所以用<避免该情况
		int mid=(left+right)/2;
		if(nums[mid]==target)
			return mid;
		else if(nums[mid]<target)
			left=mid+1;
		else if(nums[mid]>target)
			right=mid;//target位于[left, middle)中
	}
	return -1;
} 

int main(){
	int nums[]={1,3,5,7,8,9,15,20};
	int n=sizeof(nums)/sizeof(nums[0]);
	int target;
	scanf("%d",&target);
	int result=search(nums,n,target);
	if(result==-1)
		printf("失败");
	else
		printf("%d对应的索引为%d",target,result);
}


http://www.kler.cn/a/598903.html

相关文章:

  • 剖析C++中继承、多态的底层原理
  • 前端会话控制技术:cookie/session/token
  • 哈尔滨工业大学DeepSeek公开课人工智能:大模型原理 技术与应用-从GPT到DeepSeek|附视频下载方法
  • Sql Server数据迁移易错的地方
  • HarmonyOS Next~鸿蒙系统功耗优化体系解析:前台交互与后台任务的全场景节能设计
  • 红数码影视(RED Digital Cinema)存储卡格式化后的恢复方法
  • AF3 rot_matmul 和 rot_vec_mul函数解读
  • 跨平台数据集成:从SQLServer到MySQL的高效实践
  • QT 图表(拆线图,栏状图,饼状图 ,动态图表)
  • Python散点密度图(Scatter Density Plot):数据可视化的强大工具
  • SysVinit和Systemd的系统运行级别
  • others-rustdesk远程
  • 卷积神经网络(Convolutional Neural Network,CNN)
  • c++二分查找模板
  • 【详细解决】pycharm 终端出现报错:“Failed : 无法将“Failed”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。
  • 爬虫案例-爬取某站视频
  • 13、STL中的unordered_set使用方法
  • 单片机写的小液晶屏驱动+汉字滚屏
  • 前端性能优化利器:CDN 技术详解与实战
  • Elasticsearch未授权访问漏洞