Python 循序搜尋法 Sequential Search

本篇 ShengYu 介紹 Python 循序搜尋法 Sequential Search。

Python Sequential Search 循序搜尋法

以下為 Python 循序搜尋法的實作,要從串列 data 裡尋找數字 7,循序搜尋法是最簡單的實作方式,主要是由一個主迴圈從頭掃到尾,一個一個值拿來跟 key 作比對,一直到有比對成功救回傳索引值或者一直到結束都沒有比對成功,沒有比對成功的話就回傳 -1,範例如下,

python3-sequential-search.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#!/usr/bin/env python3
# -*- coding: utf-8 -*-

def sequential_search(data, key):
for i in range(len(data)):
if key == data[i]:
return i
return -1

data = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
key = 7
print(data)
ret = sequential_search(data, key)
if ret == -1:
print('找不到')
else:
print('找到索引值' + str(ret))

結果如下,

1
2
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
找到索引值6

使用循序搜尋法時資料不需要先排序過

使用循序搜尋法前時資料不需要先排序過就可以直接搜尋了,跟二元搜尋法比較不一樣,範例如下,

python3-sequential-search2.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#!/usr/bin/env python3
# -*- coding: utf-8 -*-

def sequential_search(data, key):
for i in range(len(data)):
if key == data[i]:
return i
return -1

data = [1, 9, 2, 7, 4, 10, 3, 8, 5, 6]
key = 7
print(data)
ret = sequential_search(data, key)
if ret == -1:
print('找不到')
else:
print('找到索引值' + str(ret))

結果如下,

1
2
[1, 9, 2, 7, 4, 10, 3, 8, 5, 6]
找到索引值3

其它相關文章推薦
Python 二元搜尋法 Binary Search
Python 新手入門教學懶人包