【发布时间】:2020-06-08 14:51:43
【问题描述】:
在进行二分搜索时,我们将数组上的搜索范围逐步分成两半,并寻找所需的元素。如果该元素不存在于已排序的数组中,则只有在与数组的最后一个剩余元素进行比较后才能得到结果。为什么不只使用一个简单的语句,例如:
def binarySearch(array,element):
maxIndex=len(array)-1
if(array[maxIndex]<element):
return -1
if(array[0]>element):
return -1
基本上,为什么不先比较排序数组的最小值和最大值,以检查数组中是否存在元素。
即使这样,它甚至可能不存在于数组中,但如果元素大于或小于数组的任何元素,我们仍然可以节省大量搜索。
【问题讨论】:
-
如果已知找到您要查找的元素的概率非常低,这可能是有意义的。
-
@500 虽然是真的,但这对性能有多大影响,特别是考虑到我们可能并不总是知道数组中的任何一个元素。不难想出来,所以一定有特定的原因,这不在二分搜索的标准实现中