插入查找算法

 

 

def binary_search(lis, key):
    low = 0
    high = len(lis) - 1
    time = 0
    while low < high:
        time += 1
        # 计算mid值是插值算法的核心代码
        mid = low + int((high - low) * (key - lis[low]) / (lis[high] - lis[low]))
        if key < lis[mid]:
            high = mid - 1
        elif key > lis[mid]:
            low = mid + 1
        else:
            # 打印查找的次数
            print("查找的次数: %s" % time)
            return mid
    return False
if __name__ == '__main__':
    LIST = [1, 5, 7, 8, 22, 54, 99, 123, 200, 222, 444]
    result = binary_search(LIST, 22)    # 给个查找的数值
    print('该数值对应的下标是:', result)
posted @ 2019-12-19 09:23  陈士方的博客  阅读(528)  评论(0)    收藏  举报