关于c++二分算法的详解

在这个狗题频出的时代,暴力算法是必不可少的工具。今天,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次查找就找到了,这就是二分的思路。

2.二分的作用

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值