Python 二分查找
二分搜索是一种在有序数组中查找某一特定元素的搜索算法
def binarySearch(arr, jumping_off, length, x): if length >= jumping_off :
#mid是关键,这里容易想简单了 mid = jumping_off + (length -jumping_off) // 2 if arr[mid] == x: return mid elif arr[mid] > x: return binarySearch(arr, jumping_off, mid - 1, x) else: # arr[mid] < x print('mid number', mid + 1, length,x) return binarySearch(arr, mid + 1, length,x) else: return -1 # 测试数组 arr = [ 1,2, 3, 4, 5 , 6, 7, 8, 9,10] x = 10 # 函数调用 result = binarySearch(arr, 0, len(arr) - 1, x) if result != -1: print("元素在数组中的索引为 %d" % result) else: print("元素不在数组中")
结果:
mid number 5 9 10
mid number 8 9 10
mid number 9 9 10
元素在数组中的索引为 9
当你的才华撑不起你的野心时,你需要静下心来学习。