这是以我自己的思维来实现的,没有用递归。

# coding = utf-8


# 二分查找,适用于有序列表,日常编程用不到,因为index函数可以搞定的。
# 查找到数字,返回列表中的下标,找不到数字,返回-1。
def binary_search(search_list, item):
    begin = 0
    end = len(search_list)
    while begin < end:
        mid = (begin+end) // 2
        if search_list[mid] > item:
            end = mid
        else:
            if search_list[mid] < item:
                begin = mid + 1
            else:
                return mid
    return -1


if __name__ == '__main__':
    list1 = [1, 4, 5, 6, 9, 13, 26, 32, 34, 89, 321, 546, 4332]
    item = 9
    print(binary_search(list1, item))

  

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。
C:\Users\Sahara\.virtualenvs\test\Scripts\python.exe C:/Users/Sahara/PycharmProjects/test/python_search.py
4

Process finished with exit code 0

  

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄