博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
二分查找算法
阅读量:5172 次
发布时间:2019-06-13

本文共 1479 字,大约阅读时间需要 4 分钟。

//*************************************// 函数名称:FineTab  二分查找算法 ->查温度表// 函数功能:查找数据在表中相应的位置 表中数据从大到小// 入口參数:表地址、表长度、要查找的数据// 出口參数:无// 返 回 值:数据在表中的位置//***************************************/int FineTab(int *a,int TabLong,int data)//查表数据为从大到小排序{		int st,ed,m ;		int i ;			st = 0 ;//初始化要查询的数为第一个		ed = TabLong-1 ;//最后一个数		i = 0  ;			if(data >= a[st]) return st ;		else if(data < a[ed]) return ed ;			while(st < ed)		{			m = (st+ed)>>1 ;//二分取要查询的中间值				if(data == a[m] ) break ;			if(data < a[m] && data > a[m+1]) break ;									if(data > a[m])	ed = m ;								else st = m ;							if(++i > TabLong) break ;		}			if(st > ed ) return 0 ;			return m ;}//*************************************// 函数名称:FineTab  二分查找算法 ->查温度表// 函数功能:查找数据在表中相应的位置 表中数据从小到大排序// 入口參数:表地址、表长度、要查找的数据// 出口參数:无// 返 回 值:数据在表中的位置//***************************************/int Fine1Tab(int *a,int TabLong,int data){		int st,ed,m ;		int i ;			st = 0 ;//初始化要查询的数为第一个		ed = TabLong-1 ;//最后一个数		i = 0  ;			if(data <= a[st]) return st ;//小于等于第一个数 ,查询值为0,即为第一个数		else if(data >= a[ed]) return ed ;//大于等于最后一个数,查询之为最后一个数			while(st < ed)//循环查询		{	    	m = (st+ed)>>1 ;//二分取要查询的中间值			if(data == a[m] ) break ;//刚好是要查询的值,结束查询			if(data > a[m-1] && data < a[m]) break ;//data介于中间值和中间值的上个值之间,结束查询			if(data < a[m])	ed = m ;//data小于当前中间值,更新最后的范围值								else st = m ;	//data大于当前中间值,更新開始的范围值							if(++i > TabLong) //防止溢出				break ;		}			if(st > ed ) return 0 ;			return m ;}

转载于:https://www.cnblogs.com/mengfanrong/p/3941471.html

你可能感兴趣的文章
centos su命令
查看>>
CLR:基元类型、引用类型和值类型
查看>>
dubbo序列化hibernate.LazyInitializationException could not initialize proxy - no Session懒加载异常的解决...
查看>>
jQuery中的事件绑定的几种方式
查看>>
泥塑课
查看>>
setImageBitmap和setImageResource
查看>>
springMVC4 注解配置实例
查看>>
单片机编程
查看>>
Filter in Servlet
查看>>
Linux--SquashFS
查看>>
Application Pool Identities
查看>>
2017-3-24 开通博客园
查看>>
【MySQL性能优化】MySQL常见SQL错误用法
查看>>
Vue2全家桶之一:vue-cli(vue脚手架)超详细教程
查看>>
Struts 2 常用技术
查看>>
树形DP
查看>>
python flask解决上传下载的问题
查看>>
语法测试
查看>>
CES1
查看>>
CES2
查看>>