iT邦幫忙

2023 iThome 鐵人賽

DAY 12
0
Software Development

30天快速打造Python資料結構&演算法邏輯刷爆LeetCode系列 第 12

DAY 12 「線性搜尋(Linear Search)」簡單直觀的Python搜索程式碼撰寫~

  • 分享至 

  • xImage
  •  

可用於未排序的數據集合~

與昨天二元搜索比較起來反正就是遍歷一個個找所以不用排序DAY 11 「二元搜尋(Binary Search)」進入搜索領域的Python程式碼撰寫~

  • 線性搜尋的時間複雜度是 O(n)
    /images/emoticon/emoticon01.gif簡單來說就是隨著數據量的增加,搜索所需的時間也會線性增加超慢超慢~~~

Step1:從數據集合的第一個元素開始,依次與目標值進行比較
Step2:如果找到與目標值相等的元素,則搜索成功,返回該元素的位置(索引)
Step3:如果搜索到數據集合的末尾仍然沒有找到目標值,則搜索失敗,返回一個指示值(通常是 -1)

def linear_search(arr, target):
    # 反正就是遍歷一個個找,如果目標值存在於數列中,它將返回該值的索引;否則返回 -1。
    for i, val in enumerate(arr):
        if val == target:
            return i
    return -1

上一篇
DAY 11 「二元搜尋(Binary Search)」進入搜索領域的Python程式碼撰寫~
下一篇
DAY 13 「圖形搜索演算法(Graph Traversal Algorithms)」DFS & BFS 傻傻分不清楚的Python程式碼撰寫~
系列文
30天快速打造Python資料結構&演算法邏輯刷爆LeetCode30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言