嗨,所以即时尝试进行二进制搜索,找到我正在搜索的值。我虽然遇到了部分问题。首先,它将数组除以2以找到中点,然后查看中点是否为=如果不是打印未找到的值。如果没找到我想要它做这些计算。
if value < MP:
UB = MP-1
LB = len(array) - len (array)
print ("ubperbound is" ,UB)
else:
UB = len(array)-1
LB =MP + 1
因此,如果值小于中点,则应从原始中点带走1,并使上带和下带为0,但如果超过中点,则下带应为中点+ 1,上频带应为数组长度。
然而,我努力让这个工作:/它只是不工作。一些指导会有所帮助。感谢
array = [9,7,8,5,3,6,4,2,3,1,10]
array.sort()
print (array)
index = 0
value = 40
MP = int((len(array)-1) /2)
SB = False
UB = int(len(array)-1)
LB = index
print ("Midpoint is",array[MP])
print ("Upperbound is" ,UB)
print ("Lowerbound is",LB)
if MP == value:
print("found")
else:
print("Value is not the midpoint")