婷婷综合国产,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
    蜜臀av性久久久久蜜臀aⅴ四虎| 精品国产电影一区二区| 国产精品一区二区三区网站| 视频一区二区欧美| 亚洲成在线观看| 亚洲国产欧美在线| 日韩激情一二三区| 蜜桃av噜噜一区二区三区小说| 日本视频在线一区| 另类成人小视频在线| 国产美女久久久久| 99精品1区2区| 欧美日韩一本到| 91精品中文字幕一区二区三区| 67194成人在线观看| 日韩你懂的在线观看| 精品剧情在线观看| 国产精品免费aⅴ片在线观看| 国产精品久久久久aaaa樱花| 最新热久久免费视频| 亚洲国产一区二区a毛片| 日韩成人dvd| 国产精品99久久久久久似苏梦涵 | 亚洲欧美日韩国产综合| 亚洲成人免费在线观看| 免费观看久久久4p| 国产福利一区二区三区在线视频| 成人美女视频在线观看18| 色欧美片视频在线观看| 91精品国产乱| 最新国产の精品合集bt伙计| 婷婷综合五月天| 国产成人小视频| 欧美日韩中文国产| 久久综合久久99| 亚洲一区二区在线视频| 国产成人av电影在线观看| 在线影院国内精品| 国产日韩精品一区二区三区 | 色悠久久久久综合欧美99| 欧美曰成人黄网| 亚洲国产成人午夜在线一区| 午夜精品久久久| 97久久久精品综合88久久| 欧美电影免费观看高清完整版| 亚洲视频一区二区在线观看| 久久99精品视频| 欧美日韩一级大片网址| 国产精品色哟哟| 久久电影网电视剧免费观看| 欧美酷刑日本凌虐凌虐| 综合久久国产九一剧情麻豆| 国产精品白丝jk白祙喷水网站| 欧美日韩一区不卡| 亚洲一区在线观看视频| 91在线国内视频| 国产精品视频免费看| 国产精品一区二区久久精品爱涩 | 一区av在线播放| 春色校园综合激情亚洲| 久久综合九色综合97婷婷| 热久久国产精品| 欧美浪妇xxxx高跟鞋交| 一区二区日韩av| 色天天综合久久久久综合片| 国产精品久久久久影院| 成人黄色大片在线观看| 中国色在线观看另类| 国产中文字幕精品| 久久久91精品国产一区二区精品| 激情偷乱视频一区二区三区| 日韩精品一区二区三区视频在线观看 | 青青草91视频| 欧美久久久久久蜜桃| 亚洲高清在线视频| 欧美综合一区二区三区| 亚洲小少妇裸体bbw| 欧美日韩国产系列| 免费人成网站在线观看欧美高清| 91精品国产高清一区二区三区蜜臀| 婷婷成人激情在线网| 日韩欧美激情四射| 国产美女一区二区三区| 国产精品日韩精品欧美在线| 成人免费看黄yyy456| 亚洲免费av网站| 欧美精品在线一区二区三区| 青青草国产精品97视觉盛宴| 久久综合九色综合97婷婷女人 | 亚洲成人资源网| 日韩美女天天操| 国产精品一区二区免费不卡| 亚洲视频免费看| 欧美丰满美乳xxx高潮www| 麻豆国产精品一区二区三区 | 一本大道久久a久久精二百| 亚洲精品日韩一| 91精品午夜视频| 国产乱码一区二区三区| 中文字幕乱码亚洲精品一区| 日本高清免费不卡视频| 秋霞成人午夜伦在线观看| 国产亚洲精品精华液| 色狠狠av一区二区三区| 麻豆91在线播放| 亚洲精品免费在线观看| 精品剧情在线观看| 91国产丝袜在线播放| 免费美女久久99| 亚洲男同1069视频| 久久伊99综合婷婷久久伊| 色综合久久99| 国产精品一区二区久久不卡| 亚洲小说欧美激情另类| 久久久av毛片精品| 欧美日韩高清一区二区三区| 国产成人av影院| 日韩精品久久久久久| 中文字幕永久在线不卡| 日韩限制级电影在线观看| 色综合色狠狠综合色| 韩国成人在线视频| 午夜欧美一区二区三区在线播放| 久久久久国产精品人| 7777精品伊人久久久大香线蕉| 99精品久久只有精品| 国产精品亚洲一区二区三区妖精| 亚洲国产精品精华液网站| 欧美激情中文字幕一区二区| 欧美一级午夜免费电影| 欧美亚洲国产一区二区三区| av在线综合网| 北条麻妃一区二区三区| 国产高清不卡一区| 激情成人午夜视频| 欧美aaaaaa午夜精品| 天堂影院一区二区| 亚洲一区二区三区四区的| 国产精品乱人伦中文| 久久久精品国产99久久精品芒果 | 亚洲国产精品视频| 一区二区三区在线视频播放| 国产精品国模大尺度视频| 欧美高清在线一区| 中文av一区二区| 国产精品久久国产精麻豆99网站| 精品久久久久久无| 久久先锋资源网| 久久久精品tv| 亚洲欧美怡红院| 亚洲精品一二三| 亚洲不卡一区二区三区| 亚洲va欧美va天堂v国产综合| 视频一区中文字幕国产| 日本欧美加勒比视频| 精品一区二区三区影院在线午夜| 激情文学综合丁香| 成人伦理片在线| 欧美主播一区二区三区| 7777精品伊人久久久大香线蕉| 日韩美一区二区三区| 国产欧美精品日韩区二区麻豆天美| 中文字幕国产一区| 一区二区三区四区国产精品| 性做久久久久久久免费看| 美国十次了思思久久精品导航| 黄色小说综合网站| 波多野结衣欧美| 欧美日韩精品欧美日韩精品一综合 | 丁香婷婷综合色啪| 色婷婷综合久久久久中文| 欧美少妇一区二区| 精品国产91九色蝌蚪| 中文字幕永久在线不卡| 午夜婷婷国产麻豆精品| 久久精品国产亚洲a| 成人动漫中文字幕| 欧美精品久久99| 欧美国产禁国产网站cc| 亚洲成人在线网站| 国产高清不卡一区| 欧美日本高清视频在线观看| 久久久www成人免费无遮挡大片| 一区二区视频在线| 精品在线播放午夜| 在线区一区二视频| www精品美女久久久tv| 亚洲欧美日韩久久精品| 日韩va亚洲va欧美va久久| 成人少妇影院yyyy| 91精品国产综合久久小美女| 亚洲国产高清aⅴ视频| 美女性感视频久久| 色乱码一区二区三区88| 久久久亚洲国产美女国产盗摄 | 国产色综合一区| 日韩黄色免费电影| 在线观看欧美精品| 国产精品久久久久四虎| 麻豆91精品视频|