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)
二分查找--python
猜你喜欢
转载自www.cnblogs.com/yixiu868/p/11763450.html
今日推荐
周排行