线性查找(Linear Search)是一种简单直观的搜索算法。它通过遍历数组中的每个元素来检查给定值是否存在于该数组中。在最坏的情况下,需要遍历整个数组才能确定目标是否存在。
i
为0。def linear_search(arr, x):
for i in range(len(arr)):
if arr[i] == x:
return i
return -1
# 测试线性查找
arr = [10, 20, 80, 30, 60, 50, 110, 100, 130, 170]
x = 110
result = linear_search(arr, x)
if result != -1:
print("元素在数组中的索引为:", result)
else:
print("元素不在数组中")
二分查找(Binary Search)是一种高效的搜索算法,它依赖于数组或列表有序的性质。通过每次将查找范围减半来快速定位目标值的位置。
初始化两个变量 low
和 high
分别为数组的第一个元素索引和最后一个元素索引。
当 low
小于等于 high
时,进行以下操作:
mid
。mid
。遍历完所有元素仍未找到匹配项,则返回未找到信息。
def binary_search(arr, x):
low = 0
high = len(arr) - 1
while low <= high:
mid = (low + high) // 2
if arr[mid] == x:
return mid
elif arr[mid] < x:
low = mid + 1
else:
high = mid - 1
return -1
# 测试二分查找
arr = [10, 20, 30, 40, 50]
x = 30
result = binary_search(arr, x)
if result != -1:
print("元素在数组中的索引为:", result)
else:
print("元素不在数组中")
通过选择合适的查找算法,可以有效提高程序的执行效率。