倍增算法

本文通过生动的故事介绍了倍增算法,将复杂的问题简单化。普通兔子一步步跳跃,而超级兔子利用倍增算法,只需记录关键步数即可快速到达目的地。倍增算法的思想是通过每次跳跃2的幂次步数,减少计算量,实现高效查找路径,如求最近公共祖先等。通过实例解释了算法原理,帮助读者理解并应用倍增算法。
摘要由CSDN通过智能技术生成

倍增算法

【序言】

        我认为吧,所有能够优化复杂度的算法都是神奇的,所有能够化繁琐为形象的文字都是伟大的。一直觉得倍增算法是个很神奇的东西,所以决定写点东西纪念一下它。但是作为一个非常不称职的OIER,我非常讨厌在看别人的算法解析时整版的i,j,k等我看到鼠标就惯性移到右上角的符号语言,所以我想用最形象的方式来纪念它。

 

【一】

        从前,有一只可爱得不得了的小白兔,它想从A地去往遥远的B地。

 

        2B小白兔:

            向右边跳一步,左边跳一步,再向右边跳很多步,再……(对不起,这个太脑残了)

        普通小白兔:

            向右边跳一步,再跳一步,再跳一步……再跳一步,哇,到了!好开心!

        超级小白兔:

            向右边跳一大步,一步跳到B,然后默默回头,鄙视一下那只一步一步跳的小白兔。

 

        我相信作为一个正常人,是不会考虑到2B小白兔的这种做法的,因为它太脑残了。

        同时我也相信,作为一个正常人,也不会考虑到超级小白兔的这种做法的,因为……

            “我擦!你什么时候说可以这样跳了!(愤怒)”

            “我什么时候说不可以了!(卖萌)”

        但是你不得不承认,超级小白兔还是有两把刷子的,因为它真的是太厉害了,厉害得你想都没有想到。

 

【二】

        从前,有一只可爱得不得了的小白兔,它想从A地去往遥远的B、C、D、E、F这几个让它魂牵梦萦的地方。(不要问我从哪里来,我的梦想在远方)

 

 

        2B小白兔:

            (对不起,我的生命有限,我不想再提到它了)

        普通小白兔:

            一步又一步,生命不息,跳跃不止。

        超级小白兔:

            一步到B,再一步到C,再一步到D,再一步到E,再一步到F,完工。

 

        你不用解释,我深知你就想当那只超级小白兔,哼,你肯定是那样跳的。(神马?不是?兄弟你的智商我救不了了……)

        是的,不这样跳的人对不起社会啊,浪费时间就是浪费青春,浪费青春就是犯罪。

        好的,既然你是这样跳的,那你能告诉我你是怎么知道从A只要跳2个格子就会刚好到B的?难道你在空中使用了GPRS全球卫星定位系统?你少来好么!主页君现在都没用过这种东西,你一只白白嫩嫩下酒菜的小兔子还用这个?笑死我吗?哈哈,你一定是出发前就偷偷学普通兔子一步一步跳过一遍,然后拿个本子做小抄,记录好从每个格子跳任意步会到达的地方,然后赶在天亮之前回来,风光的按照踩点计划大步的跳,让我们觉得你很厉害的样子,我没说错吧?不过看在你有这个诚心的份上,还是为你的聪明鼓掌吧。

 

【三】

        从前,有一只可爱得不得了的小白兔,它想从A地去往遥远的1(此处省略很多0)个地方,因为它真的是太没事情做了。

 

 

        普通小白兔:

            从离开家门的那天起,我就没有想过要放弃一步一步地跳往终点。(嗯,加油)

        超级小白兔:

            轻轻松松,绝不多走一步。(哼哼)

 

        你想知道最后的结果吗?呵呵,好像还没有出结果……

        写给普通小白兔的话:

            亲爱的小白兔,我知道你勇毅,你质朴,但是,苦海无涯,回头是岸。

        写给超级小白兔的话:

            我不知道你的小抄本是否还够用,我不知道你摸

  • 10
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值