二分查找算法

Posted O2O2

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了二分查找算法相关的知识,希望对你有一定的参考价值。

问题描述

采用二分查找法查找特定关键字的元素。


问题分析

在一段数字内,找到中间值,判断要找的值和中间值大小的比较。

如果中间值大一些,则在中间值的左侧区域继续按照上述方式查找。

如果中间值小一些,则在中间值的右侧区域继续按照上述方式查 找。

直到找到我们希望的数字。


代码code


import sys 

def search2(a,m):

  low = 0

  high = len(a) - 1

  while(low <= high):

    mid = (low + high)/2

    midval = a[mid]

    if midval < m:

      low = mid + 1

    elif midval > m:

      high = mid - 1

    else:

      print mid 

      return mid 

  print -1

  return -1

if __name__ == "__main__":

  a = [int(i) for i in list(sys.argv[1])]

  m = int(sys.argv[2])

  search2(a,m)


以上是关于二分查找算法的主要内容,如果未能解决你的问题,请参考以下文章

查找算法之“二分查找”

Go-二分查找算法

算法_001_二分查找算法

每周算法小知识之二分查找

二分算法(java超详细)

细说算法之二分查找算法