线性搜索平均需要检查多少个元素?

How many elements need to be checked on an average in linear search?

Question: Consider linear search. How many elements of the input sequence need to be checked on the average, assuming that the element being searched for is equally likely to be any element in the array?

我该如何解决这个问题?我是否需要考虑序列中不存在元素的情况?对于这种情况,需要检查所有 n 个元素。

总人数病例数为 (n + 1)。因此平均没有。要检查的元素数 = (1 + ... + n + n) / (n + 1)。这个答案正确吗?

区分元素在数组中(查找成功)和不在数组中(查找不成功)两种情况

成功搜索的平均值为 (1 + 2 + ... + n) / n = (n + 1) / 2。

对于不成功的搜索,平均值仅为 n。

总平均值现在取决于成功搜索与不成功搜索的组合。例如,如果大多数搜索都不成功,它将接近 n。如果所有搜索都成功(这似乎是问题的意思),则平均值为 (n + 1) / 2.

如果搜索成功的概率为 p,因此搜索不成功的概率为 1-p,我们得到的平均值为 p * (n+1) / 2 + (1-p) * n。