二分查找的 Python 程序
pythonserver side programmingprogramming更新于 2025/12/14 15:08:17
在本文中,我们将了解解决给定问题陈述的解决方案和方法。
问题陈述 − 我们将获得一个排序列表,我们需要借助二分查找找到一个元素。
算法
将 x 与中间元素进行比较。
如果 x 与中间元素匹配,我们返回中间索引。
否则,如果 x 大于中间元素,则 x 只能位于中间元素后的右半子数组中。因此我们对右半部分进行递归。
否则(x 较小)对左半部分进行递归
递归算法
示例
def binarySearchAppr (arr, start, end, x):
# 检查条件
if end >= start:
mid = start + (end- start)//2
# 如果元素存在于中间
if arr[mid] == x:
return mid
# 如果元素小于 mid
elif arr[mid] > x:
返回 binarySearchAppr(arr, start, mid-1, x)
# 否则元素大于 mid
else:
return binarySearchAppr(arr, mid+1, end, x)
else:
# 数组中未找到元素
return -1
arr = sorted(['t','u','t','o','r','i','a','l'])
x ='r'
result = binarySearchAppr(arr, 0, len(arr)-1, x)
if result != -1:
print ("元素存在于索引处"+str(result))
else:
print ("元素不存在于数组中")
迭代算法
示例
def binarySearchAppr (arr, start, end, x):
# 检查条件
if end >= start:
mid = start + (end- start)//2
# 如果元素存在于中间
if arr[mid] == x:
return mid
# 如果元素小于 mid
elif arr[mid] > x:
return binarySearchAppr(arr, start, mid-1, x)
# 否则元素大于 mid
else:
return binarySearchAppr(arr, mid+1, end, x)
else:
# 数组中未找到元素
return -1
arr = sorted(['t','u','t','o','r','i','a','l'])
x ='r'
result = binarySearchAppr(arr, 0, len(arr)-1, x)
if result != -1:
print ("元素存在于索引处"+str(result))
else:
print ("元素不存在于数组中")
元素存在于索引 4 处
结论
在本文中,我们了解了应用二分查找的方法。
相关文章
有用资源
python 参考教程 - 该教程包含有关 python 的更多信息:https://www.cainiaomax.com/python/

