首页 > 编程语言 > 详细

二分查找 python实现

时间:2019-11-21 21:34:26      阅读:89      评论:0      收藏:0      [点我收藏+]

欢迎回来 [^first blood].

要求A是升序数组

递归

只能查 数据存不存在,不能返回下标

def binary_find(A, m):
    if len(A) == 0:
        return -1
        
    i = int(len(A)/2)
    if A[i] == m:
        return i
    if A[i] > m and i - 1 > 0
        return binary_find(A[0:i], m)
    if A[i] < m and len(A)- (i+1) > 0
        return binary_find(A[i+1 : ], m)
        
    return -1

不用递归

可返回下标

def binary_find(A, m):
    low = 0
    high = len(A) - 1
    
    while low <= high:
        i = int( (low + high) / 2)
        if A[i] == m:
            return i
        if A[i] > m:
            high = i - 1
        else:
            low = i + 1
        return None

[^first blood]: 俺的第一次markdown语法

二分查找 python实现

原文:https://www.cnblogs.com/love-study-chase/p/11908428.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!