最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python中的查找算法代碼實例

 更新時間:2023年07月27日 10:40:34   作者:小白地瓜  
這篇文章主要介紹了Python中的查找算法代碼實例,算法是解決一系列問題的清晰指令,也就是,能對一定規(guī)范的輸入,在有限的時間內(nèi)獲得所要求的輸出,簡單來說,算法就是解決一個問題的具體方法和步驟,算法是程序的靈魂,需要的朋友可以參考下

一. 順序查找

條件:無序或有序隊列。

原理:按順序比較每個元素,直到找到關鍵字為止。

時間復雜度:O(n)

def sequential_search(lis, key):
    length = len(lis)
    for i in range(length):
        print(lis[i], key)
        if lis[i] == key:
            return i
    return False
if __name__ == '__main__':
    LIST = [1, 5, 8, 123, 22, 54, 7, 99, 300, 222]
    result = sequential_search(LIST, 123)
    print(result)

二. 二分查找

條件:有序數(shù)組

原理:查找過程從數(shù)組的中間元素開始,如果中間元素正好是要查找的元素,則搜素過程結(jié)束;

如果某一特定元素大于或者小于中間元素,則在數(shù)組大于或小于中間元素的那一半中查找,而且跟開始一樣從中間元素開始比較。

如果在某一步驟數(shù)組為空,則代表找不到。

這種搜索算法每一次比較都使搜索范圍縮小一半。

時間復雜度:O(logn)

lst = [11, 22, 33, 44, 55, 66, 77, 88, 99, 123, 234, 345, 456, 567, 678, 789]
def func(alist, data):
    first = 0
    last = len(alist) - 1
    while first <= last:
        mid = (last + first) // 2
        if alist[mid] > data:
            last = mid - 1
        elif alist[mid] < data:
            first = mid + 1
        else:
            return mid
    return -1
print(func(lst, 678))

三. 插值查找

應用: 根據(jù)關鍵字的分布估計被查元素的位置,能更精確定位到被查找元素的位置,但應用有限

公式:mid = low + (key - low) / (a[high] - a[low]) * (high - low)

對于數(shù)據(jù)量較大,關鍵字分布比較均勻的查找表來說,采用插值查找, 速度較快

關鍵字分布不均勻的情況下,該方法不一定比折半查找要好

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

到此這篇關于Python中的查找算法代碼實例的文章就介紹到這了,更多相關Python查找算法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Python設計模式之代理模式實例

    Python設計模式之代理模式實例

    這篇文章主要介紹了設計模式中的代理模式Python實例,需要的朋友可以參考下
    2014-04-04
  • pandas DataFrame索引行列的實現(xiàn)

    pandas DataFrame索引行列的實現(xiàn)

    這篇文章主要介紹了pandas DataFrame索引行列的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-06-06
  • python實戰(zhàn)之德州撲克第二步-判斷牌型

    python實戰(zhàn)之德州撲克第二步-判斷牌型

    這篇文章主要介紹了python實戰(zhàn)之德州撲克第二步-判斷牌型,文中有非常詳細的代碼示例,對正在學習python的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-04-04
  • Python3將jpg轉(zhuǎn)為pdf文件的方法示例

    Python3將jpg轉(zhuǎn)為pdf文件的方法示例

    這篇文章主要介紹了Python3將jpg轉(zhuǎn)為pdf文件的方法,結(jié)合完整實例形式分析了Python3針對jpg轉(zhuǎn)pdf格式的文件讀寫、編碼裝換等相關操作技巧,需要的朋友可以參考下
    2019-12-12
  • 如何使用python的pillow庫生成圖像驗證碼

    如何使用python的pillow庫生成圖像驗證碼

    Pillow庫是一個強大的Python圖像處理庫,用于生成圖像驗證碼,通過初始化圖像大小、驗證碼字符長度和字體大小,生成隨機字符串、顏色、線和點,最終生成驗證碼圖像
    2025-01-01
  • pandas實現(xiàn)數(shù)據(jù)可視化的示例代碼

    pandas實現(xiàn)數(shù)據(jù)可視化的示例代碼

    本文主要介紹了pandas實現(xiàn)數(shù)據(jù)可視化的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-05-05
  • Python之字符串的遍歷的4種方式

    Python之字符串的遍歷的4種方式

    這篇文章主要介紹了Python之字符串的遍歷的4種方式,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-12-12
  • Python查找第n個子串的技巧分享

    Python查找第n個子串的技巧分享

    今天小編就為大家分享一篇Python查找第n個子串的技巧心得,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-06-06
  • Python 詳解爬取并統(tǒng)計CSDN全站熱榜標題關鍵詞詞頻流程

    Python 詳解爬取并統(tǒng)計CSDN全站熱榜標題關鍵詞詞頻流程

    讀萬卷書不如行萬里路,只學書上的理論是遠遠不夠的,只有在實戰(zhàn)中才能獲得能力的提升,本篇文章手把手帶你用Python爬取CSDN全站綜合熱榜標題,順便統(tǒng)計關鍵詞詞頻,大家可以在過程中查缺補漏,提升水平
    2021-11-11
  • Python3 把一個列表按指定數(shù)目分成多個列表的方式

    Python3 把一個列表按指定數(shù)目分成多個列表的方式

    今天小編就為大家分享一篇Python3 把一個列表按指定數(shù)目分成多個列表的方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12

最新評論

剑河县| 临江市| 灯塔市| 阿克苏市| 博罗县| 无锡市| 钟祥市| 沾化县| 施甸县| 夏河县| 北京市| 渭源县| 洛扎县| 金堂县| 谷城县| 保山市| 卢氏县| 滁州市| 健康| 华亭县| 辰溪县| 阿拉善左旗| 蓬安县| 遂昌县| 耿马| 象州县| 白山市| 南岸区| 西乌珠穆沁旗| 乌拉特中旗| 莎车县| 丰县| 三穗县| 南宫市| 来凤县| 柞水县| 宁国市| 竹溪县| 合水县| 汉沽区| 辽源市|