本篇 ShengYu 介紹 Python 循序搜尋法 Sequential Search。
Python Sequential Search 循序搜尋法
以下為 Python 循序搜尋法的實作,要從串列 data 裡尋找數字 7,循序搜尋法是最簡單的實作方式,主要是由一個主迴圈從頭掃到尾,一個一個值拿來跟 key 作比對,一直到有比對成功救回傳索引值或者一直到結束都沒有比對成功,沒有比對成功的話就回傳 -1,範例如下,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
使用循序搜尋法時資料不需要先排序過
使用循序搜尋法前時資料不需要先排序過就可以直接搜尋了,跟二元搜尋法比較不一樣,範例如下,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