当前位置 : 主页 > 编程语言 > python >

Python ❀ 二分查找

来源:互联网 收集:自由互联 发布时间:2022-06-27
二分查找是一种在有序数组中查找某一特定元素的搜索算法。搜索过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜索过程结束;如果某一特定元素大于或者小于中

二分查找是一种在有序数组中查找某一特定元素的搜索算法。搜索过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜索过程结束;如果某一特定元素大于或者小于中间元素,则在数组大于或小于中间元素的那一半中查找,而且跟开始一样从中间元素开始比较。如果在某一步骤数组为空,则代表找不到。

def binarySearch(arr,l,r,x):

#基础判断
if r >= l:
mid = int(l + (r -1) / 2)

#元素在中间位置
if arr[mid] == x:
return mid

#元素小于中间位置,左边查询
elif arr[mid] > x:
return binarySearch(arr,l,mid - 1,x)

#元素大于中间位置,右边查询
else:
return binarySearch(arr,mid + 1,r,x)

#元素不存在返回-1
else:
return -1

#输入数组和对应查询的值
arr = [2,1,3,4,5,6,73,3,23,5,6,7,3,2,6,6,7,2,33,1]
x = int(input("输入一个数字:"))

#函数调用
result = binarySearch(arr,0,len(arr)-1,x)

#输出索引值
if result != -1:
print("元素在数组中的索引为%s"%result)
else:
print("元素不在数组中")


上一篇:Python ❀ 打印乘法口诀表
下一篇:没有了
网友评论