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)
#!/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实现与floor,ceil实现)
- python实现查找算法:二分查找法
- python数据结构,二分查找法的实现!
- 发布一个用Python实现的“法语动词变位工具”
- Python实现ASP+ACCESS注入,不用SOCKET
- Python使用Com组件及Access查询分析类实现
- IronPython0.9.4发布了 —— 实现静态编译并提供官方Tutorial
- 用Python实现GB与BIG5码的转换
- 用Python实现数据库编程
- Python实现的在线保持
- python中实现Single模式
- python实现的AES双向对称加密解密与用法分析
- 用Python实现语音合成
- 用Python实现ORM
- ·python·用生成器和迭代器实现自己的xrange
- 发布一个用Python实现的“法语动词变位工具”
- C#下的webservcie 实现代码和 在vc和python下的调用实现(原创)
- [转载]Python实现ASP+ACCESS注入的工具源代码
- [Python]Python中实现一个时间(日期)型加几个月的运算
- 用Python实现去掉文章中特定的段落