线性搜索平均需要检查多少个元素?
Posted
技术标签:
【中文标题】线性搜索平均需要检查多少个元素?【英文标题】:How many elements need to be checked on an average in linear search? 【发布时间】:2015-05-31 02:57:08 【问题描述】:问题:考虑线性搜索。输入有多少个元素 序列需要检查平均,假设元素 被搜索的同样可能是数组中的任何元素?
我该如何解决这个问题?我是否需要考虑元素不存在于序列中的情况?对于这种情况,需要检查所有 n 个元素。
总数案例数为(n + 1)
。因此平均没有。要检查的元素数 = (1 + ... + n + n) / (n + 1)
。这个答案正确吗?
【问题讨论】:
"我是否需要考虑元素不存在于序列中的情况?" - 询问提出问题的人。 只要阅读关于线性搜索的***文章,您就会了解它的一切...en.wikipedia.org/wiki/Linear_search 我认为“同样可能是数组中的任何元素”回答了您的问题。 【参考方案1】:区分元素在数组中(搜索成功)和不在数组中(搜索不成功)的两种情况。
对于成功的搜索,平均值为 (1 + 2 + ... + n) / n = (n + 1) / 2。
对于不成功的搜索,平均值仅为 n。
现在,总平均值取决于成功搜索与不成功搜索的组合。例如,如果大多数搜索不成功,它将接近 n。如果所有搜索都成功(这似乎是问题的意思),则平均值为 (n + 1) / 2。
如果成功搜索的概率是 p,因此对于不成功的搜索 1-p,我们得到 p * (n+1) / 2 + (1-p) * n 的平均值。
【讨论】:
以上是关于线性搜索平均需要检查多少个元素?的主要内容,如果未能解决你的问题,请参考以下文章