浮点数二分查找的实现

        这是C++算法基础-基础算法专栏的第六篇文章,专栏详情请见此处


引入

        上次我们学习了整数二分查找的实现,这次我们要学习浮点数二分查找的实现。

定义

        浮点数二分查找与整数二分查找的定义都是大致相同的,如果想了解具体内容,可以移步至我的这篇博客:整数二分查找的实现​​​​​​。

过程

        与整数二分查找的过程也是大致相同的,只是有一点注意,整数二分查找一般是在数组中查找某一数值,但浮点数二分查找一般是在一段区间中查找某一数值。而且,浮点数二分查找不用考虑加1减1的情况,因为它的边界是对精度的要求(精度一般都要多两位,这样可以保证准确,防止浮点数偏差)。

性质

        与整数二分查找的性质也是相同的。

代码

        下面给出浮点数二分查找函数的实现: 

bool check(double x){
	// ... 
}	// 检查x是否满足某种性质

double bsearch_3(double l,double r){
	const double eps=1e-6;	// eps表示精度,取决于题目对精度的要求
	while(r-l>eps){
		double mid=(l+r)/2;
		if(check(mid))
			r=mid;
		else
			l=mid;
	}
	return l;
}
        代码解释

        check()函数的作用是检查x是否满足某种性质;bsearch_3()函数的作用是进行浮点数二分查找。


上一篇-整数二分查找的实现    C++算法基础专栏文章    下一篇-高精度加法的实现


每周六更新一篇文章,内容一般是自己总结的经验或是在其他网站上整理的优质内容

点个赞,关注一下呗~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值