二分查找

二分查找是我接触的第一个算法。 

但是其实我们最早接触的关于二分查找就是那个猜数字的游戏。 

也就是,生成一百以内的随机数,给n次机会猜。 

想必大家都知道一定是每次一半一半的猜才能快。 

二分法原理不难,优点是查找次数少,速度快,性能好。 

缺点则是要求必须是有序表。

下面直接上模板代码: 


(截图是为了不希望直接复制粘贴..还是要自己敲比较好…虽然二分是最简单的算法,但是自己敲的习惯还是要有…以后复杂的算法每个人的模板都不一样,还是要自己探索适合自己的…orz)

给一个暑假集训的例题。

HDU-2199 

http://acm.hdu.edu.cn/showproblem.php?pid=2199

ac代码:


可以说是模板题了。

再可以做一个修路的题。 

csu-1023 

http://acm.csu.edu.cn/csuoj/problemset/problem?pid=1023

ac代码:


另外算是两个小技巧吧: 

1.对于middle比较稳妥的定义是  

middle=left+(right-left)/2;

2.STL二分查找函数 

binary_search(a,a+n,num) 

a是数组。num是要查找的数,比较简单就不赘述了。

//纪念一下我第一个接触的算法。算法确实很难,很烧脑。但是坚持下去,慢慢对着模板刷题,早晚会有那么一瞬间突然就都明白了。我觉得一天能学一个算法就很好。万事开头难,加油。

//这一生,总要为你爱的人拼一次

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 【传智播客.黑马程序员训练营成都中心】 转载请注明出处作者: 成都校区.堂堂老师 前言 查找二字,我们可以理解成:...
    OpenCoder阅读 11,574评论 2 6
  • 二分查找 二分查找算法是一种在有序数组中查找某一特定元素的搜索算法。搜素过程从数组的中间元素开始,如果中间元素正好...
    JasonDing阅读 5,399评论 0 3
  • 更多优秀的国外作曲编曲教程请戳这里哦:作曲编曲相关讲座资料翻译整理 本文原文地址:コード進行からメロディーを作る(...
    Huisama阅读 8,931评论 0 55
  • 天天在外面浪的人必备这种小瓶装的,带水壶那冒傻气还不方便,喝完领手上?那得身体多不好多大年纪干的事?年轻就是这种无...
    纵情嬉戏天地间阅读 2,662评论 0 0
  • 我是学俄语的,你愿意和我一起私奔吗? 我是学学前教育专业的,你愿意和我一起哄孩子吗? 我是学调酒的,你愿意陪我醉吗...
    柠檬味的石头阅读 4,055评论 0 0