基本是没啥问题,有几个小建议哈
1.既然你num在函数里定义了,就没必要作为参数传进来了
2.def 里面定义了打印结果就不要再返回放在main中打印了,你要么全放在函数中打印,要么用函数返回值在main中打印,不然不利于函数的使用。
3.height是高度的意思这里一般用low 和 high
4.你可以考虑下如果所查找的数组中有重复元素该怎么办def binary_search(A,target):
num=len(A)
low=0
high=num
while low<=high:
mid=(low+high)//2
if A[mid]<target:
low=mid+1
elif A[mid]>target:
high=mid-1
else:
return print('%s在数组中的第%s位'%(target,mid+1))
print("搜索的数不存在!")
if __name__== "__main__":
str_in=input('请以空格号为间隔输入数组:')
A=[int(n)for n in str_in.split()]
str_in=input('请输入一个目标值:')
target=int(str_in)
A.sort()
result=binary_search(A,target)
|