这是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++算法基础专栏文章 下一篇-高精度加法的实现
每周六更新一篇文章,内容一般是自己总结的经验或是在其他网站上整理的优质内容
点个赞,关注一下呗~
标签:二分,double,浮点数,mid,整数,查找 From: https://blog.csdn.net/wyuchen123/article/details/137434185