我试图更改我的代码,这样就不会找到数组的特定值,而是输出一个间隔的值,例如60-70。感谢任何帮助。在
def binary (array, value):
while len(array)!= 0:
mid = len(array) // 2
if value == array[mid]:
return value
elif value > array[mid]:
array = array[mid+1:]
elif value < array [mid]:
array = array[0:mid]
sequence = [1,2,5,9,13,42,69,123,256]
print( "found", binary(sequence,70) )
到目前为止,我有这个,希望它找到一个指定的间隔,所以如果我指定60-70,它会找到介于两者之间的时间。在
其实这很简单:},这样
在搜索间隔
(lower, upper)
中的元素时,对数组arr
执行二进制搜索,查找最小元素arr[n]
的索引,这样arr[n] >= lower
和最大元素的索引{arr[m] <= upper
。在现在有几种可能性:
n
开始到索引m
的子数组中arr[n]
可以使用如下的二进制搜索来搜索超过某个阈值的值:
对于代码的外观很抱歉,我的python远远不够完美。不管怎样,这应该显示出该方法背后的基本思想。该算法基本上搜索具有属性
arr[ind] >= threshold
的数组中第一个元素的索引ind
。在相关问题 更多 >
编程相关推荐