qq_23050143
文文璐璐
2018-10-05 09:34

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

  • python
  • 二分查找
 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))

  • 点赞
  • 回答
  • 收藏
  • 复制链接分享

2条回答