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

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.dtcms.com/a/86856.html

相关文章:

  • 【大模型科普】大模型:人工智能的前沿(一文读懂大模型)
  • Canal同步延迟和数据丢失优化方案
  • IBM ECM结合 第三方AI API 来实现文档分析和 RAG
  • 如何从后端实现页面跳转?
  • MLIR中Dialect的抽象层级 简介
  • 算法训练营第二十二天 | 回溯算法(四)
  • page.json和manifest.json
  • 耗时sql分析
  • 通义灵码2.0 AI 程序员体验:优化与问题解决的全过程
  • 练习用Jupyter使用selenium【疑问未解决版】
  • 关于TVS管漏电流的问题?
  • 计算机二级:函数基础题
  • WMS仓储管理系统架构介绍
  • 进制转换(R转十)(1290. 二进制转换十进制、1292. 十六进制转十进制、1291. 八进制转十进制、1405. 小丽找潜在的素数)
  • 基于深度学习的图像分割项目实践:从理论到应用
  • VBA-Excel
  • 自动化机器学习(TPOT优化临床试验数据)
  • springCloud集成tdengine(原生和mapper方式) 其二 原生篇
  • 阿里云对象存储教程
  • NGINX中的反向代理实践
  • 【C++】--- 类和对象(中)之日期类的实现
  • 遇见东方微笑·畅游如意甘肃——“天水文化旅游嘉年华”2025年春季文旅宣传推广活动侧记
  • RTX4090架构解析与性能实测
  • springboot 和springboot3-教程
  • 基于漂浮式海上风电场系统的浮式风力发电机matlab仿真
  • 蓝桥杯每日一题----一维差分
  • window10安装WSL2
  • Debezium + Kafka-connect 实现Postgre实时同步Hologres
  • 正则艺术:深入探讨高级语法——零宽断言与反向引用实战
  • 传统金融和分布式金融