vlambda博客
学习文章列表

鬼斧神功的方法:二分查找


本周系列课程由@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



明日期待带来,滑动窗口和单调栈的讲解。敬请期待。