码迷,mamicode.com
首页 > 编程语言 > 详细

Python实现二分查找法

时间:2014-09-01 15:38:33      阅读:198      评论:0      收藏:0      [点我收藏+]

标签:python   算法   二分查找   

二分查找可以解决(预排序数组的查找)问题:只要数组中包含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实现二分查找法

标签:python   算法   二分查找   

原文地址:http://blog.csdn.net/ws_cs_dn/article/details/38980259

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!