用于线性搜索的Python程序
问题:给定一个包含 n 个元素的数组 arr[],编写一个函数来搜索 arr[] 中的给定元素 x。
例子 :
Input : arr[] = {10, 20, 80, 30, 60, 50,
110, 100, 130, 170}
x = 110;
Output : 6
Element x is present at index 6
Input : arr[] = {10, 20, 80, 30, 60, 50,
110, 100, 130, 170}
x = 175;
Output : -1
Element x is not present in arr[].
一种简单的方法是进行线性搜索,即
- 从 arr[] 最左边的元素开始,将 x 与 arr[] 的每个元素一一比较
- 如果 x 与元素匹配,则返回索引。
- 如果 x 不匹配任何元素,则返回 -1。
例子:
# Searching an element in a list/array in python
# can be simply done using \'in\' operator
# Example:
# if x in arr:
# print arr.index(x)
# If you want to implement Linear Search in python
# Linearly search x in arr[]
# If x is present then return its location
# else return -1
def search(arr, x):
for i in range(len(arr)):
if arr[i] == x:
return i
return -1
上述算法的时间复杂度为 O(n)。
有关详细信息,请参阅有关线性搜索的完整文章!