二分法专业知识
树图思维导图提供 二分法 在线思维导图免费制作,点击“编辑”按钮,可对 二分法 进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:e81c466e42c874c1d66362f520431012
二分法思维导图模板大纲
查找第一个大于等于x的数
思路
先按照二分的思路写,当a[mid]<x时就按照模板来写,l=mid+1;当a[mid]>=x时,就要注意,这里的mid就有可能是解,所以就用while循环,在a[mid]>=x时一直mid--,直到找到第一个小于x的数时候,然后输出mid+1,但这样还是有问题,会死循环,举个例子就可以得知,因为这里是r=mid,所以有可能出现l=r的情况,所以while循环的条件得改一下,改成l<r
做法
if(x>a[n]) cout<<n+1; else while(l<r){ mid=(l+r)/2; if(a[mid]<x) l=mid+1; else{ while(a[mid]>=x) mid--; cout<<mid+1; break; } }
可以理解为实数范围内的二分查找,比证书还更简单,因为实数不可能出现四舍五入的情况,不用考虑mid的特殊情况,但要注意一点,如果这里while的条件还写l<=r的话,那么就会一直死循环下去,因为这里是实数,小数点后可以延伸许多,所以我们就得看题目要求的精确到几位,如果是5位,那么就应该是r-l>1e-6(比题目要多一位)
找到小数x的三次方跟
while(r-l>0.0000001){ mid=(l+r)/2; if(mid*mid*mid>=n) r=mid; else l=mid; }
树图思维导图提供 二分法查找 在线思维导图免费制作,点击“编辑”按钮,可对 二分法查找 进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:97899d0f520dda5adc3bf1f11af9952a
树图思维导图提供 2020年全国计算机二级公共基础知识复习知识点:二分法查找 在线思维导图免费制作,点击“编辑”按钮,可对 2020年全国计算机二级公共基础知识复习知识点:二分法查找 进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:b88f28ac70613738ee64fe2adf17bb72