import sys
num = 1
arr = [1,52,58,68,789,213,12,14]
# fun = lambda arr : arr.sort() # 匿名函数 lambda 用于排序
# 二分查找法/二分搜索法
def find_tow(arr,start,end,find):
if end >= start:
# 函数出口,不属于列表类型
if type(arr) != list:
# sys.exit() # 退出函数
return print('类型不匹配')# 退出子函数(并且可以返回值,也可以不返回值)
global num # 引入全局变量,注意位置,不能写在下面,不然会报错,涉及到变量的作用域
if num == 1:
arr.sort()
num = num + 1
mid = (start + end) // 2
if find == arr[mid]:
return f'已经找到了,位置是{arr.index(find)}'
elif arr[mid] > find:
return find_tow(arr,start,mid-1,find)
else:
return find_tow(arr,mid+1,end,find)
else:
print('元素不在数组中')
find_tow(arr,0,len(arr)-1,58)