婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > Python查找算法之插補查找算法的實現

Python查找算法之插補查找算法的實現

熱門標簽:電話外呼系統招商代理 佛山通用400電話申請 京華圖書館地圖標注 電話機器人貸款詐騙 廣東旅游地圖標注 看懂地圖標注方法 打印谷歌地圖標注 蘇州人工外呼系統軟件 淮安呼叫中心外呼系統如何

一、插補查找算法

插補查找算法又稱為插值查找,它是折半查找算法的改進版。插補查找是按照數據的分布,利用公式預測鍵值所在的位置,快速縮小鍵值所在序列的范圍,慢慢逼近,直到查找到數據為止。根據描述來看,插值查找類似于平常查英文字典的方法。例如,在查一個以字母 D 開頭的英文單詞時,決不會用折半查找法。根據英文詞典的查找順序可知,D 開頭的單詞應該在字典較前的部分,因此可以從字典前部的某處開始查找。鍵值的索引計算,公式如下:

middle=left+(target-data[left])/(data[right]-data[left])*(right-left)

參數說明:

  • middle:所求的邊界索引。
  • left:最左側數據的索引。
  • target:鍵值(目標數據)。
  • data[left]:最左側數據值。
  • data[right]:最右側數據值。
  • right:最右側數據的索引。

例如,已經有排序好的數列:34、53、57、68、72、81、89、93、99。要查找的數據是 53,使用插補查找法步驟如下:

步驟1:將數據列出來并利用公式找到邊界值,計算過程如下:

將各項數據帶入公式:


將數據取整,因此所求索引是 2,對應的數據是 57,將查找目標數據 53 與 57 進行比較,如下圖所示。

步驟2:將 53 與 57 進行比較,結果是 53 小于 57,所以查找 57 的左半邊數據,不用考慮右半邊的數據,索引范圍縮小到 0 和 2 之間,公式帶入:


取整之后索引是 1,對應的數據是 53,將查找目標數據 53 與 53 進行比較,如下圖所示:

步驟3:將 53 與 53 進行比較,所得結果相等,查找完成。說明:如果多次分割之后沒有找到相等的值,表示這個鍵值沒有在這個數列中。

通過上述的步驟1就能看出,插補查找算法比折半查找算法的取值范圍更小,因此它的速度要比折半法查找快,這就是插補查找算法的優點。

二、實例:利用插補查找用戶輸入的數據

用戶可以隨意輸入一組數據,例如本實例輸入一組數據:34、53、57、68、72、81、89、93、99。在這組數據中用插補查找法分別查找數據 57、53、93、89、100,且顯示每次查找的過程。用 Python 代碼實現此過程,具體代碼如下:

def insert_search(data, num):
    """
    自定義查找函數:該函數使用的是插補查找算法
    :param data: 原數列data
    :param num: 鍵值num
    :return:
    """
    # 計算
    left_index = 0  # 最左側數據的索引
    right_index = len(data) - 1  # 最右側數據的索引
    print("正在查找.......")  # 提示
    while left_index = right_index:
        # 使用公式計算出索引值
        middle = left_index + (num - data[left_index]) / (data[right_index] - data[left_index]) * (
                right_index - left_index)
        # 取整
        middle = int(middle)
        # print(middle)
        if num == data[middle]:
            return middle  # 如果鍵值等于邊界值,返回邊界位置
        elif num  data[middle]:
            # 輸出位置在數列中的左半邊
            print(f"{num} 介于位置{left_index + 1}[{data[left_index]}]和邊界值{middle + 1}[{data[middle]}]之間,找左半邊......")
            right_index = middle - 1  # 如果鍵值小于邊界值,最右邊數據索引等于邊界位置減1
        else:
            # 輸出位置在數列中的左半邊
            print(f"{num} 介于位置{middle + 1}[{data[middle]}]和邊界值{right_index + 1}[{data[right_index]}]之間,找右半邊......")
            left_index = middle + 1  # 如果鍵值大于邊界值,最左邊數據索引等于邊界位置加1
    return -1  # 自定義函數到此結束


inp_num = 0  # 定義變量,用來輸入鍵值
num_list = [34, 53, 57, 68, 72, 81, 89, 93, 99]  # 定義數列
print("數據內容是:")
for index, ele in enumerate(num_list):
    print(f" {index + 1}[{ele}]", end="")  # 輸出數列
print("")
flag = True  # 開關,用來管控是否多次查找

while flag:  # 循環查找
    inp_num = int(input("請輸入要查找的鍵值:").strip())  # 輸入查找鍵值
    result = insert_search(num_list, inp_num)  # 調用自定義的查找函數——insert_search()函數
    if result == -1:  # 判斷查找結果是否是-1
        print(f"沒有找到[{inp_num}]")  # 若為-1,提示沒有找到值
    else:
        # 若不為-1,提示查找位置
        print(f"在{result + 1}個位置找到[{inp_num}]")
    char = input("本次查找結束,是否繼續查找,請輸入 y(Y) 或 n(N):").strip()
    if char.upper() == "N":
        flag = False

程序執行結果如下圖所示:

到此這篇關于Python查找算法之插補查找算法的實現的文章就介紹到這了,更多相關Python 插補查找算法內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • Python常用外部指令執行代碼實例
  • Python 讀取用戶指令和格式化打印實現解析
  • 如何安裝并使用conda指令管理python環境
  • python執行CMD指令,并獲取返回的方法
  • Python機器學習之KNN近鄰算法
  • Python機器學習算法之決策樹算法的實現與優缺點
  • 用Python給圖像算法做個簡單應用界面
  • Python實現七大查找算法的示例代碼
  • python實現狄克斯特拉算法
  • python使用ProjectQ生成量子算法指令集

標簽:股票 畢節 駐馬店 江蘇 呼和浩特 衡水 湖州 中山

巨人網絡通訊聲明:本文標題《Python查找算法之插補查找算法的實現》,本文關鍵詞  Python,查找,算法,之,插補,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Python查找算法之插補查找算法的實現》相關的同類信息!
  • 本頁收集關于Python查找算法之插補查找算法的實現的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    亚欧色一区w666天堂| 99精品欧美一区二区三区综合在线| 中文字幕欧美日本乱码一线二线| 久久一区二区三区四区| 中文字幕国产一区| 色噜噜夜夜夜综合网| 成人va在线观看| 91精品国产日韩91久久久久久| 成人h精品动漫一区二区三区| 国产精品1区2区3区| 国产高清精品在线| 97精品电影院| 欧美日韩激情一区二区| 欧美性xxxxx极品少妇| 欧美视频在线不卡| 日韩欧美的一区| 国产午夜精品福利| 亚洲欧美日韩一区| 丝袜诱惑制服诱惑色一区在线观看 | aaa欧美日韩| 欧美在线短视频| 日韩欧美另类在线| 中日韩av电影| 丝袜诱惑亚洲看片| 国产精品一区专区| 欧美曰成人黄网| 2019国产精品| 久久久国产精华| 亚洲精品免费一二三区| 日韩电影在线免费观看| 国产精品亚洲专一区二区三区| 一本到一区二区三区| 91精品在线免费观看| 国产精品视频在线看| 日韩专区一卡二卡| 成人午夜又粗又硬又大| 欧美日韩综合色| 中文字幕欧美日韩一区| 午夜精品福利在线| www.久久久久久久久| 精品国产91乱码一区二区三区| 亚洲精品国产品国语在线app| 男女性色大片免费观看一区二区| av一本久道久久综合久久鬼色| 51精品国自产在线| 亚洲日本一区二区三区| 国产精品香蕉一区二区三区| 欧美精品tushy高清| 综合色中文字幕| 国产在线麻豆精品观看| 欧美伦理影视网| 伊人色综合久久天天| 国产91高潮流白浆在线麻豆| 日韩欧美激情四射| 亚洲成av人片观看| 日本丶国产丶欧美色综合| 国产欧美日韩综合精品一区二区| 美女在线视频一区| 欧美精品成人一区二区三区四区| 亚洲精选视频免费看| 不卡视频一二三| 久久久高清一区二区三区| 青青草国产成人av片免费| 91精品1区2区| 亚洲综合小说图片| 91免费在线播放| 亚洲欧美一区二区三区国产精品| 成人三级在线视频| 国产精品白丝在线| 91一区在线观看| 中文字幕在线观看一区| 99久久精品情趣| 亚洲另类在线制服丝袜| 色94色欧美sute亚洲线路二| 亚洲日本va午夜在线影院| 91亚洲资源网| 亚洲午夜一二三区视频| 欧美在线免费播放| 亚洲永久免费av| 7777精品伊人久久久大香线蕉最新版| 亚洲一区二区精品视频| 欧美影片第一页| 午夜精品久久久久久久久| 91精品国产91综合久久蜜臀| 日韩av二区在线播放| 精品理论电影在线观看| 国产成人小视频| 亚洲天堂福利av| 欧美日韩国产综合一区二区| 乱中年女人伦av一区二区| 欧美精品一区男女天堂| 成人av资源在线观看| 亚洲色图清纯唯美| 在线观看91精品国产麻豆| 精品综合久久久久久8888| 国产精品每日更新| 欧美性xxxxxxxx| 国产精品系列在线观看| 有码一区二区三区| 欧美一级日韩免费不卡| 国产在线乱码一区二区三区| 亚洲人成小说网站色在线 | 精品久久人人做人人爰| 成人国产电影网| 午夜精品123| 国产日产欧美一区二区三区| 欧美在线免费视屏| 国产91高潮流白浆在线麻豆 | 久久―日本道色综合久久| 成人性生交大片免费看视频在线 | 亚洲色图都市小说| 日韩视频免费观看高清完整版| 国产精品888| 亚洲国产sm捆绑调教视频| 久久九九99视频| 欧美日韩国产不卡| 成人免费看黄yyy456| 另类成人小视频在线| 亚洲精品亚洲人成人网| 国产日韩欧美高清在线| 欧美亚洲动漫另类| 国产成人亚洲精品狼色在线| 偷拍亚洲欧洲综合| 亚洲日本丝袜连裤袜办公室| 精品国产三级a在线观看| 欧美裸体一区二区三区| 不卡的av网站| 国产老妇另类xxxxx| 九色综合国产一区二区三区| 亚洲大尺度视频在线观看| 综合久久综合久久| 国产日产亚洲精品系列| 久久综合九色综合欧美亚洲| 4438成人网| 欧美偷拍一区二区| 色狠狠桃花综合| 色婷婷综合五月| eeuss影院一区二区三区| 国产成人精品免费在线| 国产高清在线观看免费不卡| 激情综合色综合久久综合| 麻豆成人久久精品二区三区红| 五月激情六月综合| 日本vs亚洲vs韩国一区三区二区 | 日韩国产精品91| 亚洲一级二级在线| 亚洲蜜臀av乱码久久精品| 国产精品欧美一区喷水| 亚洲国产精品精华液ab| 欧美韩国日本一区| 中文字幕欧美激情| 18欧美乱大交hd1984| 国产精品久久久久影院老司| 中文字幕不卡一区| 亚洲欧美日韩中文播放| 亚洲色图欧洲色图婷婷| 一区二区三区加勒比av| 亚洲成人tv网| 麻豆精品在线视频| 国产成人免费在线视频| 成人成人成人在线视频| 91麻豆精东视频| 欧美日韩亚洲综合| 精品国产成人系列| 中文乱码免费一区二区| 亚洲激情第一区| 天天av天天翘天天综合网色鬼国产| 蜜臀久久99精品久久久画质超高清| 捆绑调教一区二区三区| 国产成人午夜精品影院观看视频 | 精品中文字幕一区二区| 国产精品一区二区黑丝| www.欧美亚洲| 欧美一区二区播放| 国产区在线观看成人精品 | 午夜免费久久看| 久久不见久久见中文字幕免费| 国产suv精品一区二区三区| 欧洲激情一区二区| 欧美va亚洲va| 亚洲精品成人在线| 精品制服美女丁香| 日本黄色一区二区| 久久久久久一二三区| 一二三四社区欧美黄| 激情小说亚洲一区| 欧美日韩免费观看一区二区三区| 欧美成人一区二区三区在线观看| 日韩理论片一区二区| 毛片av中文字幕一区二区| 99天天综合性| 精品国精品自拍自在线| 亚洲自拍都市欧美小说| 丁香亚洲综合激情啪啪综合| 精品1区2区3区| 国产精品看片你懂得| 久久国产精品一区二区| 欧美在线free| 亚洲蜜桃精久久久久久久| 国产一区二区三区在线观看免费视频 |