【问题标题】:About worse case scenarios in binary searching关于二分查找中的更坏情况
【发布时间】:2017-01-26 16:05:24
【问题描述】:

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

【问题讨论】:

  • 如果取平均情况,会有不同。但在最坏的情况下,您会明确寻找最长的比较链。

标签: algorithm search time-complexity binary-search


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-07-10
    • 2012-07-06
    • 1970-01-01
    • 2020-08-23
    • 2015-02-06
    • 2012-05-21
    • 1970-01-01
    相关资源
    最近更新 更多