二分查找(Binary Search)是数据结构与算法课程中应该讲到的一个非常重要的内容。通常,二分查找算法可以借由递归的结构来实现,也可以通过迭代来实现。但是在实际应用中二分查找可能变化出许多更为复杂的形式,面对这些变种题目时能否得心应手地来处理,便考察了你是否真正掌握了二分查找的精髓。同时,推荐参考《算法之美:隐匿在数据结构背后的原理》一书中的相关章节以了解更多本文未能充分尽述的细节(该书中的代码以C++写成)。
关于二分查找(Binary Search)的基本内容,这里引用《算法之美——隐匿在数据结构背后的原理(C++版)》一书中相关内容作为一个初步的介绍。后面本文还会讨论几个常见的二分查找变种题目。