二分算法有这些特点:是最恶心、细节最多、最容易写出死循环的算法。但是只要我们真正掌握了二分算法的话,那么前面这些特点就会不存在了!
下面我们学习的时候,会有两个侧重点:
- 算法原理
- 我们会用经典的题目来介绍二分的思想,特别是要认清一点的是,不一定非得像网上或者书上说的那样子:只有当数组有序的情况才能用二分。其实这是不正确的,因为只要一个数组有可以用二分的规律的话,那么照样是可以使用二分法的!
- 模板
- 我们会学三个二分算法的模板:
- 朴素的二分模板
- 查找左边界的二分模板
- 查找右边界的二分模板
- 其中第一个模板我们会在第一道题介绍到,后两个模板会在第二道题介绍到!
- 第一个模板有一个特点,就是简单,但是局限也比较多;而后两个模板细节上稍微会多一些,但是基本是万能的!
- 最后切记,不要死记硬背,要理解原理!