##二分法查找 #被查找的对象必须是一个有序序列! #递归方式 lst = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17] def func(n,left,right): if left <= right: middle = (left + right)//2 if n < lst[middle]: right = middle - 1 elif n > lst[middle]: left = middle + 1 else: return middle return func(n,left,right) else: return -1 print(func(12,0,16))
运行结果: