码迷,mamicode.com
首页 > 其他好文 > 详细

小谈二分法 三分法

时间:2014-08-07 19:14:40      阅读:169      评论:0      收藏:0      [点我收藏+]

标签:style   数据   问题   size   res   ef   程序   on   

二分法,三分法主要是空间图形的不同,二分法主要解决的是在某个区间之间单调增或减的图形,而三分法主要解决的是凸形,或者凹形的图形,这样的用三分法比较方便些。

二分法模板,

 

整数类型的有以下大致模板:

<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;
 

小谈二分法 三分法,布布扣,bubuko.com

小谈二分法 三分法

标签:style   数据   问题   size   res   ef   程序   on   

原文地址:http://blog.csdn.net/ice_alone/article/details/38420043

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!