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

python 插入查找

时间:2018-12-28 00:52:04      阅读:217      评论:0      收藏:0      [点我收藏+]

标签:结束   while   break   and   bre   int()   bsp   inter   键值   

 

def interpolation_search(data,val):
    low=0
    high=len(data)-1
    print(查找过程中......)
    while low<= high and val !=-1:
        mid=low+int((val-data[low])*(high-low)/(data[high]-data[low])) #插值查找法公式
        if val==data[mid]:
            return mid
        elif val < data[mid]:
            print(%d 介于位置 %d[%3d] 和中间值 %d[%3d] 之间,找左半边                   %(val,low+1,data[low],mid+1,data[mid]))
            high=mid-1
        elif val > data[mid]:
            print(%d 介于中间值位置 %d[%3d] 和 %d[%3d] 之间,找右半边                   %(val,mid+1,data[mid],high+1,data[high]))
            low=mid+1
    return -1

val=1
data=[3,4,5,6,7,8,9]
while True:
    num=0
    val=int(input(请输入查找键值(1-150),输入-1结束:))
    if val==-1:
        break
    num=interpolation_search(data,val)
    if num==-1:
         print(##### 没有找到[%3d] ##### %val)
    else:
        print(在第 %2d个位置找到 [%3d] %(num+1,data[num]))
    
print(数据内容为:)
for j in data:
    print(%3d %(j),end=‘‘)
print()

 

python 插入查找

标签:结束   while   break   and   bre   int()   bsp   inter   键值   

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

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