鬼斧神功的方法:二分查找
本周系列课程由@suzyzhang老师带来数组题里面鬼斧神工的方法讲解。
包括并不限于:
二分三分查找
滑动窗口
单调栈
01
二分查找
Binary Search
二分查找算法(binary search algorithm),也称折半搜索算法(half-interval search algorithm)、对数搜索算法(logarithmic search algorithm),是一种在有序数组中查找某一特定元素的搜索算法。
以在单调递增数组中进行精确查找为例,搜索过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜索过程结束;如果目标元素大于或者小于中间元素,则在数组大于或小于中间元素的那一半中查找,而且跟开始一样从中间元素开始比较。如果在某一步骤数组为空,则数组中不存在目标元素。
时间复杂度为O(logN)。
空间复杂度O(1)。
应用条件:1. 数据存储在能随机访问元素的线性结构中。
应用条件:2. 数据在搜索区间内按关键字有序。
02
三分查找
Triple search
03
附录
Reference
明日期待带来,滑动窗口和单调栈的讲解。敬请期待。