您的位置:首页 > 编程语言 > Python开发

Python 二分法查找

2012-03-22 15:17 309 查看
1.如果找到该值就返回

2.如果找不到该值就返回该值的上一个Index和下一个Index

3.小于List[0] 返回0

4.大于len(List)返回该List[-1]

def BinarySearch(keyTime,List):
low = 0
high = len(List) - 1
middle = 0

while(low <= high):
middle = int((low + high) / 2)
#获取中间数据
listTime = List[middle][0]
if listTime == keyTime:
return listTime
break
elif listTime < keyTime:
low = middle + 1
elif listTime > keyTime:
high = middle - 1

if high < 0:
print '不在List范围内'
return 0
elif low > len(List) - 1:
print '超出List范围'
return len(List)
else:
return (high,low)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: