线性搜索和二分搜索是两种常见的搜索算法,它们在不同的情况下有不同的适用性。
代码示例:
def linear_search(arr, target):
for i in range(len(arr)):
if arr[i] == target:
return i # 返回目标元素的索引
return -1 # 若列表中不存在目标元素,则返回-1
# 示例用法
arr = [1, 2, 3, 4, 5]
target = 3
index = linear_search(arr, target)
if index != -1:
print("目标元素在索引", index, "处")
else:
print("目标元素不存在")
代码示例:
def binary_search(arr, target):
low = 0
high = len(arr) - 1
while low <= high:
mid = (low + high) // 2
if arr[mid] == target:
return mid # 返回目标元素的索引
elif arr[mid] < target:
low = mid + 1
else:
high = mid - 1
return -1 # 若列表中不存在目标元素,则返回-1
# 示例用法
arr = [1, 2, 3, 4, 5]
target = 3
index = binary_search(arr, target)
if index != -1:
print("目标元素在索引", index, "处")
else:
print("目标元素不存在")
需要注意的是,二分搜索要求列表是有序的。如果列表无序,需要先对列表进行排序,再进行二分搜索。