zoukankan      html  css  js  c++  java
  • python 插入查找

    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()
  • 相关阅读:
    Docker 第一章 安装测试
    时区
    操作系统层虚拟化
    KVM
    基于秘钥的登录认证
    Hypervisor
    通过域名区分不同网站服务
    硬件虚拟化
    虚拟化初识
    nginx rewrite (转发)
  • 原文地址:https://www.cnblogs.com/sea-stream/p/10188223.html
Copyright © 2011-2022 走看看