在这个狗题频出的时代,
暴力算法是必不可少的工具。今天,bo~~~~~ki~将以蒟蒻视角,为您精彩将算法之,二分之谜。手动狗头
不开玩笑啊,算法确实是很重要的一点,不会的话只能用暴力,硬做。如果不会,那么时间超限阵容欢迎您的到来!
其实DFS也是半斤八两。所以说我准备出一个专栏,专门讲各种我会的算法,当然是以蒟蒻的视角,因为本人就是个蒟蒻。而且今天,我还有一个朋友。Jerry,给大家打个招呼。Hello!行了,我们进入正题吧。
1.二分是什么
学二分之前我们必须要弄懂啥是二分,你不能稀里糊涂的直接上代码,那是蒟蒻行为
好像我也是个蒟蒻。二分其实就是暴力的优化,从字面意思就可以理解,二分就是每次折半,举个例子:1 3 4 5 7 8 9 10 11 12 15
在这个有序序列中,我们要找15。暴力怎么找?从第一个遍历到最后一个,通过11次循环后找到了十五。那二分呢?锁定中间值8,8小于15,因为我们这个序列是升序,所以往右边找。确定右边子序列的中间值11,11小于15,再往右。找到右子序列的右子序列的中间值(如果是偶数的话用靠前那个)12,12小于15,往右,15等于15,只用了4次查找就找到了,这就是二分的思路。