二分查找
1 lit = [11, 22, 33, 44, 55, 66, 77, 88, 99] 2 3 4 def func(left, right, n): 5 middle = (left + right)//2 6 if left > right: 7 return -1 8 if n > lit[middle]: 9 left = middle + 1 10 elif n < lit[middle]: 11 right = middle - 1 12 else: 13 return middle 14 return func(left, right, n) 15 16 17 print(func(0, len(lit)-1, 56))
方法二:
1 ll = [5, 66, 25, 4, 11, 23, 66, 98, 45, 11, 25, 654, 256, 358, 45, 63, 2, 54, 8, 45, ] 2 ll.sort() 3 print(ll) 4 n = 25 5 left = 0 6 right = len(ll) - 1 7 while left < right: 8 middle = (left + right)//2 9 if n > ll[middle]: 10 left = middle + 1 11 elif n < ll[middle]: 12 right = middle - 1 13 else: 14 print("找到了") 15 print(middle) 16 break 17 else: 18 print("找不到")

浙公网安备 33010602011771号