版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、二分查找算法,简单定义:在一个单调有序的集合中查找元素,每次将集合分为左右两部分,判断解在哪个部分中并调整集合上下界,重复直到找到目标元素。 时间复杂度:O (logn),优于直接顺序查找O(n),二分查找算法,例子:,/x:待查找的元素, n:数组集合大小, num数组单调递增 int low=0,high=n,mid,res = -1; /low:集合下界 high:集合上节 while(low=high) mid=(low+high)/2; /mid:将集合分割为两部分 if(nummid=x) /查找到符合元素x res = mid; break; else if(nummidx) /
2、x在右边部分,调整集合下界 low=mid+1; else /x在左边部分,调整集合上界 high=mid-1; /若未找到x,则res = -1,参考程序,查找连续函数的写法,/x:待查找的值,Caculate():所要查找的函数,在这里单调递增 /需保证查找的值在区间范围内 double low=“区间下界”,high=“区间上界”,mid; while(high - low 1.0e-6) mid = (high + low)/2; if(Caculate(mid)x) low=mid; else high=mid; ,常见拓展,对于某些问题,如果答案具有特定的范围,并且验证答案是否成立
3、的函数具有单调性。则可以在范围内对答案进行二分验证,从而快速确定答案。,例子:HOJ2651 PIE,题目大意:有f+1个人分n块披萨,每个人要求分得的面积一样,且披萨只能被切开而不能重新组合,求每个人能分到的最大面积v。 分析:对于每个确定的v,可以计算出最多能满足的人数p。因此得到一个单调递减的函数关系,并且v的范围也可以确定为0max(size(i),i=1.n。,x轴每个人分到的面积v y轴对应可分最大人数p 对于第一组样例 图中红点所对应的v值即 为最优解,二分查找满足 p=4时v的最大值即可得 到答案,/由于精度差问题,考虑先将面积*1000000转化为整数来二分 long lon
4、g res,mid; while (low = high) mid = (high + low) / 2; if (judge(mid) ) low = mid + 1; res = mid; /最后结果为res else high = mid - 1; ,核心代码,bool judge(long long mid) long long p = 0; for (int i = 0; i = f; ,推荐题目,Poj 3273 ,1434 Hdu 2141 ,2899,1969 Coj 1080 ,1216,1048,当需要求某凸性或凹形函数的极值,通过函数本身表达式并不容易求解时,就可以用三分
5、法不断逼近求解。,三分法,类似二分的定义Left和Right mid = (Left + Right) / 2 midmid = (mid + Right) / 2; 如果mid靠近极值点,则Right = midmid; 否则(即midmid靠近极值点),则Left = mid;,三分法,例子:ZOJ 3203 Light Bulb,如图,人左右走动,求影子L的最长长度。 根据图,很容易发现当灯,人的头部和墙角成一条直线时(假设此时人站在A点),此时的长度是影子全在地上的最长长度。当人再向右走时,影子开始投影到墙上,当人贴着墙,影子长度即为人的高度。所以当人从A点走到墙,函数是先递增再递减,为凸性函数,所以我们可以用三分法来求解。,double mid, midmid; while ( low + eps cmidmid ) high = midmid; else low = mid; ,核心代码,double cal(double x) return (h * D - H * x) / (D - x) + x; /这
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 康复医院笔试题及答案
- 山东省泰安市2025-2026学年高二下学期期末考试 地理试题( 含答案)
- 2026中考英语必背高频重点短语(满分必考版)
- 人工智能在风险评估中的应用-第171篇
- 2026年注册电气工程师考试备考冲刺模拟试卷含答案解析
- 2026年税务师《涉税服务实务》真题汇编(省卷)真题及答案解析
- 2026年六安职业技术学院单招职业适应性考试题库附参考答案详解
- 2026年高级经济师考试真题及答案详解
- 中国磷酸二氢铵(MAP)行业前景预测及投资可行性评估研究报告
- 矿山机械制造行业分析技术升级发展趋势
- 第一章 预备知识(高效培优单元测试-强化卷)-北师大版高中数学必修第一册(解析版)
- 2025年车辆管理考试题库及答案
- DG-TJ 08-2246-2023 绿色建筑工程验收标准
- NBT 11194-2023 新能源基地送电配置新型储能规划技术导则
- 2025及未来5年中国美味汉堡市场调查、数据监测研究报告
- 2025比亚迪供应商审核自查表
- 教科版(2024)三年级上册科学全册教案
- 医院培训课件:《脑卒中的识别与急救》
- 小学科学课程标准教师考试理论部分参考试题及答案
- 护理中医技术临床应用与规范化管理
- 导热油锅炉管理制度
评论
0/150
提交评论