二分搜索算法-三分基础-算法入门.ppt

上传人:sh****n 文档编号:13185016 上传时间:2020-06-06 格式:PPT 页数:15 大小:628.50KB
返回 下载 相关 举报
二分搜索算法-三分基础-算法入门.ppt_第1页
第1页 / 共15页
二分搜索算法-三分基础-算法入门.ppt_第2页
第2页 / 共15页
二分搜索算法-三分基础-算法入门.ppt_第3页
第3页 / 共15页
点击查看更多>>
资源描述
icekhit,二分查找算法,简单定义:在一个单调有序的集合中查找元素,每次将集合分为左右两部分,判断解在哪个部分中并调整集合上下界,重复直到找到目标元素。时间复杂度:O(logn),优于直接顺序查找O(n),二分查找算法,例子:,/x:待查找的元素,n:数组集合大小,num数组单调递增intlow=0,high=n,mid,res=-1;/low:集合下界high:集合上节while(low=high)mid=(low+high)/2;/mid:将集合分割为两部分if(nummid=x)/查找到符合元素xres=mid;break;elseif(nummid1.0e-6)mid=(high+low)/2;if(Caculate(mid)=4时v的最大值即可得到答案,/由于精度差问题,考虑先将面积*1000000转化为整数来二分longlongres,mid;while(low=high)mid=(high+low)/2;if(judge(mid)low=mid+1;res=mid;/最后结果为reselsehigh=mid-1;,核心代码,booljudge(longlongmid)longlongp=0;for(inti=0;i=f;,二分的思想在很多领域中都得到了广泛的应用,是很多算法的基础。相信不难理解整个二分查找的框架和用法。,总结,当需要求某凸性或凹形函数的极值,通过函数本身表达式并不容易求解时,就可以用三分法不断逼近求解。,三分法,类似二分的定义Left和Rightmid=(Left+Right)/2midmid=(mid+Right)/2;如果mid靠近极值点,则Right=midmid;否则(即midmid靠近极值点),则Left=mid;,三分法,例子:ZOJ3203LightBulb,如图,人左右走动,求影子L的最长长度。根据图,很容易发现当灯,人的头部和墙角成一条直线时(假设此时人站在A点),此时的长度是影子全在地上的最长长度。当人再向右走时,影子开始投影到墙上,当人贴着墙,影子长度即为人的高度。所以当人从A点走到墙,函数是先递增再递减,为凸性函数,所以我们可以用三分法来求解。,doublemid,midmid;while(low+epscmidmid)high=midmid;elselow=mid;,核心代码,doublecal(doublex)return(h*D-H*x)/(D-x)+x;/这里放要求的函数;,对于求解一些实际问题,当公式难以推导出来时,二分、三分法可以较为精确地求解出一些临界值,且效率也是令人满意的。灵活应用这些方法对解题会很有帮助。,总结,
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!