Python有序数列二分查找
2021/10/20 17:12:58
本文主要是介绍Python有序数列二分查找,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
方法一:(while循环法)
def binarySearch(arr,x): #自定义函数:arr:有序数组;x:待查找值
low,high=0,len(arr)-1 #初始查询下标索引
while low<=high: #循环判断
mid=int((low+high)/2) #获取有序数组中间值下标索引
if x==arr[mid]: #判断待查找值与中间索引值相同
return mid #返回索引下标
elif x>arr[mid]: #判断待查值大于中间索引值时
low=mid+1 #开始索引下标赋新值
else: #判断待查值小于中间索引值时
high=mid-1 #结束索引下标赋新值
return -1 #while循环判断不成立时
#测试
arr=[2,3,4,10,40]
x=10
result=binarySearch2(arr,x)
print(result)
方法二:(递归法)
def binarySearch(arr,s,e,x): #自定义递归函数 arr:有序数组,s:开始索引下标,e:结束索引下标,x:待查值
if s<=e: #循环判断
mid=int((e+s)/2) #获取有序数组中间值下标索引
if arr[mid]==x: #判断待查找值与中间索引值相同
return mid #返回索引下标
elif arr[mid] < x: #判断待查值大于中间索引值时
return binarySearch(arr,mid+1,e,x) #递归:开始索引下标赋新值
else: #判断待查值小于中间索引值时
return binarySearch(arr,s,mid-1,x) #递归:结束索引下标赋新值
else: #外层 if 循环判断不成立时
return -1
#测试数组
arr=[2,3,4,10,40]
x=10
#函数调用
result=binarySearch(arr,0,len(arr)-1,x)
print(result)
这篇关于Python有序数列二分查找的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-14获取参数学习:Python编程入门教程
- 2024-11-14Python编程基础入门
- 2024-11-14Python编程入门指南
- 2024-11-13Python基础教程
- 2024-11-12Python编程基础指南
- 2024-11-12Python基础编程教程
- 2024-11-08Python编程基础与实践示例
- 2024-11-07Python编程基础指南
- 2024-11-06Python编程基础入门指南
- 2024-11-06怎么使用python 计算两个GPS的距离功能-icode9专业技术文章分享