梦想照进现实的专栏

每天叫醒自己的不是闹钟,而是梦想

Python 二分法查找

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)


阅读更多
文章标签: python list
个人分类: python
想对作者说点什么? 我来说一句

Python二分法

2017年11月15日 877B 下载

没有更多推荐了,返回首页

不良信息举报

Python 二分法查找

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭