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

posted on 2023-06-28 10:17  如尘如水  阅读(21)  评论(0编辑  收藏  举报