顺序搜索
顺序搜索(Sequential Search),也称为线性搜索(Linear Search),是一种简单直观的搜索算法。它通过逐个检查列表中的每个元素,直到找到目标值或遍历完整个列表。顺序搜索适用于任何类型的列表,无论是否有序。
什么是顺序搜索?
顺序搜索的核心思想是从列表的第一 个元素开始,逐个检查每个元素,直到找到目标值或遍历完整个列表。如果找到目标值,返回其索引;否则,返回一个表示未找到的值(通常是 -1
)。
顺序搜索的时间复杂度为 O(n)
,其中 n
是列表的长度。这意味着在最坏的情况下,算法需要检查列表中的每一个元素。
顺序搜索的实现
以下是一个用 Python 实现的顺序搜索示例:
def sequential_search(arr, target):
for i in range(len(arr)):
if arr[i] == target:
return i
return -1
# 示例使用
arr = [3, 5, 2, 8, 9, 1]
target = 8
result = sequential_search(arr, target)
print(f"目标值 {target} 的索引是: {result}")
输入:
arr = [3, 5, 2, 8, 9, 1]
target = 8
输出:
目标值 8 的索引是: 3
在这个例子中,顺序搜索从列表的第一个元素开始,逐个检查每个元素,直到找到目标值 8
,并返回其索引 3
。
逐步讲解
- 初始化:从列表的第一个元素开始。
- 比较:将当前元素与目标值进行比较。
- 匹配:如果当前元素与目标值匹配,返回当前索引。
- 继续:如果不匹配,移动到下一个元素,重复步骤 2 和 3。
- 结束:如果遍历完整个列表仍未找到目标值,返回
-1
。