二分查找算法

Posted 51testing

tags:

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


"""
user:
version:
function:二分查找
除法的运算
‘/‘ 无论是否整除返回的都是 float ,暂且叫它精确除法
例如 : 10/5,的到的结果是 2.0
‘//‘ 无论是否整除返回的都是 int ,而且是去尾整除
例如 :5//2,得到的结果是 2
‘%‘ 是取余运算,返回两个余数,经常在判断是否整除上运用
例如 :5%2,得到的结果是 1

向上向下取整(要先导入模块 math )
向上取整
math.ceil()
返回值为 int
向下取整
math.floor()
返回值为 int

四舍五入
内置函数 round()
返回值为 int


"""
import math

def binary_search(list,item):
low = 0
high = len(list) - 1
#print(high)

while low <= high:
mid = (low + high) / 2
mid = math.floor(mid)
guess = list[mid]
if guess == item:
return mid
if guess > item:
high = mid -1
else:
low = mid + 1
#return None
my_list = [1,3,5,7,9]
print (binary_search(my_list,7))
print (binary_search(my_list,-1))

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

查找算法之“二分查找”

Go-二分查找算法

算法_001_二分查找算法

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

二分算法(java超详细)

细说算法之二分查找算法