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

Python实现二分查找法

2014-09-01 15:05 204 查看
二分查找可以解决(预排序数组的查找)问题:只要数组中包含T(即要查找的值),那么通过不断缩小包含T的范围,最终就可以找到它。一开始,范围覆盖整个数组。将数组的中间项与T进行比较,可以排除一半元素,范围缩小一半。就这样反复比较,反复缩小范围,最终就会在数组中找到T,或者确定原以为T所在的范围实际为空。对于包含N个元素的表,整个查找过程大约要经过log(2)N次比较。

#!/usr/bin/env python
# -*- coding: utf-8 -*-

def func(l, n):
if not l:
return False
length = len(l)
if length == 1:
if l[0] == n:
return True
else:
return False
idx = length/2
num = l[idx]
if num == n:
return True
if num > n:
return func(l[:idx], n)
if num < n:
return func(l[idx+1:], n)

if __name__ == "__main__":
l = range(10)
n = 5
print func(l, n)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python 算法 二分查找