线性搜索的平均案例复杂度
Posted
技术标签:
【中文标题】线性搜索的平均案例复杂度【英文标题】:Average case complexity of Linear search 【发布时间】:2021-09-11 09:58:51 【问题描述】:所有教程和***都说线性搜索平均情况的复杂度是 n/2。我知道准确的答案是 (n+1)/2,它源自公式 (1+2+...+n)/n。。 p>
我的问题是,为什么消息来源说 n/2 而不是 (n+1)/2?他们没有错吗?
【问题讨论】:
您的问题没有提供足够的信息来回答。您是否假设要搜索的项目始终在列表中,并且它的第一次出现同样可能出现在输入数组中的任何位置?你问的是复杂性,但你期望得到一个精确的结果,比如 n/2 或 (n+1)/2。是关于执行的平均比较次数的问题,还是您只对复杂度类感兴趣? ***说“如果每个元素被搜索的可能性相同,那么线性搜索的平均情况为 (n+1)/2 次比较,但如果搜索概率为每个元素都不同。”尽管在侧框中它说平均性能是 O(n/2)。由于 (n+1)/2 = O(n/2) = O(n) 我认为***并没有像你说的那样错。 @PaulHankin 我想知道为什么一些消息来源说复杂度是 n/2 而其他人说是 (n+1)/2。这两个答案的依据是什么? 哦,现在我明白了。谢谢@PaulHankin n/2 和 (n+1)/2 不仅仅是彼此的大问题。他们是asymptotically equivalent 【参考方案1】:@PaulHankin 回答
***说“如果每个元素被搜索的可能性相同,那么线性搜索的平均情况为 (n+1)/2 次比较,但如果每个元素的搜索概率不同,则平均情况可能会受到影响。”尽管在侧框中它说平均性能是 O(n/2)。因为 (n+1)/2 = O(n/2) = O(n)
@Stef 回答
n/2 和 (n+1)/2 不仅仅是彼此的大哦。他们是asymptotically equivalent。
【讨论】:
您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center。以上是关于线性搜索的平均案例复杂度的主要内容,如果未能解决你的问题,请参考以下文章