python中的二分查找
二分查找的前提是查找的数据按照顺序排序
二分查找的核心思想是递归
# arr:查找的对象
# left:arr的左边界
# right:arr的右边界
# x:需要查找的数
def binary_search(arr,left,right,x):
# 左边界小于等于右边界
if left<=right:
# 得到中位数
mid=int((left+right)//2)
# x小于中位数,说明x在左半边,右边界为mid-1(从下标0开始找)
if x<arr[mid]:
# 递归继续找
return binary_search(arr,left,mid-1,x)
# x大于中位数,说明x在右半边,左边界为mid+1
elif x>arr[mid]:
# 递归继续找
return binary_search(arr,mid+1,right,x)
# 直到最后找到返回下标
elif x==arr[mid]:
return mid
else:
return '数据不存在'
arr = [1,2,3,4,5,6]
x = 3
# 用result来接收下标的值:2
result = binary_search(arr,0,len(arr-1),3)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具