def binary_search(list,item): i = 0 j = 1 low = 0 # 定义最小下标 high = len(list)-1 # 定义最大下标 while low <= high: #while循环,保证可以遍历到指定区域的元素,直到被寻找的值和中间值相等 mid = int((low + high)/2) # 寻找数组的中间值 guess = list[mid] # 获取列表最中间的元素 if guess == item: i = j = mid # 进行条件判断,将中间值和被寻找的值进行比较,相等则返回该值 print("查找元素X在数组中:") print("i = j = " + str(mid)) if guess > item: high = mid-1 # 如果被寻找的值小于中间值,则最大下标变化为中间值的前一个元素下标 else: low = mid + 1 # 如果被寻找的值大于中间值,则最小下标变化为中间值的后一个元素下标 if i != j: i = high j = low print("被查元素X不在数组内:") print("小于X的元素位置i = " + str(i)) print("大于X的元素位置j = " + str(j)) return None my_list = [1,2,3,4,5,6,8,9,10,12,14] binary_search(my_list,7)
二分查找改写
最新推荐文章于 2024-07-12 19:30:19 发布