关闭

Python 二分法查找

标签: pythonlist
2287人阅读 评论(0) 收藏 举报
分类:

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)


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:111343次
    • 积分:1638
    • 等级:
    • 排名:千里之外
    • 原创:50篇
    • 转载:40篇
    • 译文:0篇
    • 评论:4条
    文章分类
    最新评论