用递归 二分法 在列表中找数字,最后count应该返回值为3,麻烦看下为何只返回1?
def digui(test_list,count,site,num): #test_list:源列表;count:遍历次数;site:列表位置;num:要查询数值
if test_list[site] < num:
test_list = test_list[site:] # 中间值小于55,就取test_list[site]后面的列表
count += 1 # 计数加1
elif test_list[site] > num:
test_list = test_list[:site]
count += 1
else:
count += 1
site = len(test_list) // 2
if test_list[site] != num: #若未找到,进行递归
digui(test_list,count,site,num)
return count
print(digui(test_list=[1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 22, 33, 44, 55, 66, 77],
count=0,
site=8,
num=77))