美文网首页云莉的技术专题
二分查找 Binary Search Algorithm

二分查找 Binary Search Algorithm

作者: 云莉6 | 来源:发表于2020-04-07 13:28 被阅读0次

二分查找的前提

  1. 目标函数单调性(单调递增或递减,支队有序数组有效)
  2. 存在上下界(bounded)
  3. 能够通过索引访问(index accessible)

定义

也称折半搜索算法(half-interval search algorithm)、对数搜索算法(logarithmic search algorithm) 是一种有序数组中查找特定元素的搜索算法。

  • 搜索过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜索过程结束。
  • 如果某一特定元素大于或小于中间元素,则在数组大于或小于中间元素的那一半中查找,而且跟开始一样从中间元素开始比较。如果某一步骤数组为空,则代表找不到,这种搜索算法每一次比较都是搜索范围缩小一半。

复杂度

  • 时间复杂度:O(log n)
  • 空间复杂度:O(1)

代码模版

left, right = 0, len(array) - 1 

while left <= right: 

  mid = (left + right) / 2 

  if array[mid] == target: 

    # find the target!! 

    break or return result 

  elif array[mid] < target: 

    left = mid + 1 

  else: 

    right = mid - 1

相关文章

网友评论

    本文标题:二分查找 Binary Search Algorithm

    本文链接:https://www.haomeiwen.com/subject/kiogphtx.html