关于二进制搜索中更糟糕的情况

时间:2017-01-26 05:10:58

标签: algorithm search time-complexity binary-search

二进制搜索更糟糕的情况是1 + lg n,但如果元素在排序数组中或者元素不在其中,这种情况会更糟吗?我认为应该花更少的搜索来确定元素不在数组中,或者搜索保持不变

1 个答案:

答案 0 :(得分:3)

假设您必须在最坏的情况下进行k比较,以检查元素是否在数组中。在最后一次(kth)比较中,如果键不匹配,则该元素显然不在数组中。因此,如果kth比较后元素不在数组中,则不需要进行任何比较。

因此,最坏的情况应保持不变,无论元素是否在排序数组中,都在k=ceil(log(n))

同样,在线性搜索的情况下,假设密钥位于数组的最后位置。我们需要n比较,如果数组的最后一个元素与键不匹配,我们可以得出结论,该元素不在数组中。我们不需要进行任何比较,最坏的情况将是相同的(n),无论数组中是否存在元素。