Skip to content
On this page

二分查找

题目

用 Javascript 实现二分查找(针对有序数组),说明它的时间复杂度

一个故事

N 年前,百度,一个复杂的后台系统出现了问题,因为太大找不到问题所在。 一个工程师,使用二分法,很快找到了问题原因。

无论多么大的数据量,一旦有了二分,便可快速搞定。
二分法,是算法的一个重要思维。

但二分法有一个条件:需要有序数据。

分析

二分查找是一种固定的算法,没什么可分析的。

两种实现思路

  • 递归 - 代码逻辑更加简洁
  • 循环 - 性能更好(就调用一次函数,而递归需要调用很多次函数,创建函数作用域会消耗时间)

时间复杂度 O(logn)

答案

参考 binary-search.ts 和 binary-search.test.ts

划重点

  • 有序,就一定要想到二分
  • 二分的时间复杂度必定包含 O(logn)

Released under the MIT License.