二分查找--python

 1 import random
 2 
 3 # 二分查找--递归实现
 4 def binary_search(arr, left, right, num):
 5     if left > right:
 6         return -1
 7     mid = (left + right) // 2
 8     if num < arr[mid]:
 9         right = mid - 1
10     elif num > arr[mid]:
11         left = mid + 1
12     else:
13         return mid
14     return binary_search(arr, left, right, num)
15 
16 if __name__ == '__main__':
17     arr = [11, 32, 51, 21, 42, 9, 5, 6, 7, 8]
18     print(arr)
19     arr.sort()
20     print(arr)
21 
22     num = random.randint(0, 52)
23     print('要查找的数:', num)
24     res = binary_search(arr, 0, len(arr) - 1, num)
25     if -1 == res:
26         print('未找到!')
27     else:
28         print('找到了,索引', res)
29     print('*********************')
30     num = arr[random.randint(0, len(arr))]
31     print('要查找的数:', num)
32     res = binary_search(arr, 0, len(arr) - 1, num)
33     if -1 == res:
34         print('未找到!')
35     else:
36         print('找到了,索引', res)

猜你喜欢

转载自www.cnblogs.com/yixiu868/p/11763450.html