用Python实现基础版二分查找算法
二分查找是一种在有序数组中查找特定元素的搜索算法,其思路是每次将待查找的序列分成两部分,判断目标元素在哪一部分中,并且对应地继续查找。这个过程像是在一段文本中定位到某个单词,不断缩小范围,直到找到目标单词或者确定该单词不存在。
基于Python语言,我们可以实现一份简单易懂的二分查找算法。首先,需要定义一个函数,输入为有序列表和目标元素,输出为该元素在列表中的位置(下标)或者None。
def binary_search(arr, target):
left = 0
right = len(arr) - 1
while left <= right:
mid = (left + right) // 2
if arr[mid] == target:
return mid
elif arr[mid] < target:
left = mid + 1
else:
right = mid - 1
return None
在这个函数的内部,首先定义了左右指针left和right,它们初始值分别为列表的起始和终止下标。然后,进入while循环,每次计算中间点mid的下标,并按照目标值与中间值的大小关系缩小查找范围。最后,如果找到目标值,返回mid,否则返回None。
下面是一些用于测试的示例代码:
if name == ‘main’:
arr = [1, 3, 5, 7, 9]
target = 3
print(binary_search(arr, target
本文介绍了如何使用Python实现基础版的二分查找算法,该算法适用于有序数组。通过定义一个函数,输入有序列表和目标元素,返回目标元素在列表中的位置或None。文章还提供了测试示例以帮助理解算法的运作。
订阅专栏 解锁全文
1159

被折叠的 条评论
为什么被折叠?



