二分查找

二分查找,需要先排序

def binary_search(li,val):
    left = 0
    right = len(li)-1
    while left <= right:
        mid = (left+right) // 2
        if li[mid] == val:
            return mid
        elif li[mid] > val:
            right = mid -1
        else:
            left = mid + 1

    return None
li = [1,2,5,3,7]
li.sort()
print("li=",li)
ix = binary_search(li,3)
print("ix=",ix)

原文地址:https://www.cnblogs.com/navysummer/p/15360103.html