请问大佬们,用python二分查找,我这样写有啥问题不?

文文璐璐 2018-10-05 05:43:03
A = [int(n) for n in input("请以空格为间隔输入一个数组").split()]
A.sort() #将数组按从小到大顺序排序
print(A)
target = int (input("请输入您要查找的整数"))

def BinarySearch(A,target,num):
low = 0
high = len(A)-1
while low <= high: #判定列表长度不为空,则查找
num = int(low+((high-low)/2)) #将列表长度切半,并取出长度
if target < A[num]: #如果目标值小于中间数
high = num-1 #从前半段继续找
elif target > A[num]: #如果目标值大于中间数
low = num+1 #从后半段继续找
else: #如果找到了
return print("结果:%s在数组中的位置是%s"%(target,num))
return print("-1") #如果没有找到,返回-1

num = len(A)
print(BinarySearch(A,target,num))
...全文
245 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
Barkpi 2018-10-09
  • 打赏
  • 举报
回复
老师好像要求允许用户输入三个指标值:数组,目标值和数组长度诶。当输入是“请以空格为间隔输入一个数组sd 5 sd5 89 df”时程序报错了,目标值也有同样的问题。我想改来着,不会改

255

社区成员

发帖
与我相关
我的任务
社区描述
其他产品/厂家
社区管理员
  • 其他
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧