首页 > 代码库 > 小谈二分法 三分法
小谈二分法 三分法
二分法,三分法主要是空间图形的不同,二分法主要解决的是在某个区间之间单调增或减的图形,而三分法主要解决的是凸形,或者凹形的图形,这样的用三分法比较方便些。
二分法模板,
整数类型的有以下大致模板:
<span style="font-size:14px;">int low=0,high=n,mid,x,res=-1;while(low<high){ mid=(high+low)/2; if(num[mid]==x)//其中x是我们想要寻找的元素,num数组单调递增,n表示数组的大小 { res=mid;break; } else if(num[mid]<x) low=mid+1; else high=mid-1;} </span>
查找连续函数的写法:
<span style="font-size:14px;">#define eps 1e-6 double high="区间上限",low="区间下限",mid,res,x; while(high>low+eps)//因为是double类型的数据要考虑到精度的问题,所以不能直接 最起码要大于1e-5 { mid=(high+low)/2; res=cal(mid); if(res<x) low=mid; else high=mid; }</span>
//注意两者中的最大值最小值 都要幅值的,否则程序无法正车运行。
三分法
mid=(left+right)/2;
midmid=(mid+right)/2;
若mid靠近极值点,则right =midmid;
否则,left=mid;
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。