Algorithm 关于二进制搜索中的最坏情况场景

Algorithm 关于二进制搜索中的最坏情况场景,algorithm,search,time-complexity,binary-search,Algorithm,Search,Time Complexity,Binary Search,二进制搜索的最坏情况是1+lg n,但是如果元素在排序数组中,或者元素不在排序数组中,这种最坏情况会发生变化吗?我认为应该用更少的搜索来确定元素不在数组中,或者搜索是否保持不变,比如说,在最坏的情况下必须进行k比较,以检查元素是否在数组中。在最后一次(kth)比较中,如果键不匹配,则元素显然不在数组中。因此,如果在kth比较之后元素不在数组中,则无需再进行任何比较 因此,不管元素是否在排序数组中,最坏的情况应该保持不变,即k=ceil(log(n)) 同样,在线性搜索的情况下,假设键位于数组中的

二进制搜索的最坏情况是
1+lg n
,但是如果元素在排序数组中,或者元素不在排序数组中,这种最坏情况会发生变化吗?我认为应该用更少的搜索来确定元素不在数组中,或者搜索是否保持不变,比如说,在最坏的情况下必须进行
k
比较,以检查元素是否在数组中。在最后一次(
kth
)比较中,如果键不匹配,则元素显然不在数组中。因此,如果在
kth
比较之后元素不在数组中,则无需再进行任何比较

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


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

如果采用平均情况,则会有差异。但在最坏的情况下,您明确地寻找最长的比较链。