码迷,mamicode.com
首页 > 编程语言 > 详细

python 插值查找

时间:2018-09-22 10:34:58      阅读:336      评论:0      收藏:0      [点我收藏+]

标签:turn   mes   class   als   int   arch   lis   sea   else   

def binary_search(lis, key):
    low = 0
    high = len(lis) - 1
    time = 0
    while low < high:
        time += 1
        # 
        mid = low + int((high - low) * (key - lis[low])/(lis[high] - lis[low]))
        print("mid=%s, low=%s, high=%s" % (mid, low, high))
        if key < lis[mid]:
            high = mid - 1
        elif key > lis[mid]:
            low = mid + 1
        else:
            # 
            print("times: %s" % time)
            return mid
    print("times: %s" % time)
    return False
 
LIST = [1, 5, 7, 8, 22, 54, 99, 123, 200, 222, 444]
result = binary_search(LIST, 444)
print(result)

  

python 插值查找

标签:turn   mes   class   als   int   arch   lis   sea   else   

原文地址:https://www.cnblogs.com/sea-stream/p/9689112.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!