线性搜索的平均情况

时间:2016-03-01 07:19:50

标签: algorithm search linear sequential

我有一系列元素A1,A2,...,An。

用户搜索每个元素的概率是P1,P2,...,Pn。

如果重新排列元素,算法的平均情况会改变吗?

编辑:我已经发布了我的考试中出现的问题。

Question 3A

2 个答案:

答案 0 :(得分:2)

预期的比较次数为sum_ {i = 1 ... n}(i * p_i)。

按降序重新排序元素会降低预期。这很直观,因为通过首先查看最可能的选择,平均会减少在找到特定选择之前所看到的元素数量。

例如,假设有三个项目k1,k2,k3,匹配概率分别为10%,30%和60%。

然后按顺序k1,k2,k3,预期的比较次数为1 * 0.1 + 2 * 0.3 + 3 * 0.6 = 2.5

最可能的第一个:k3,k2,k1,预期的比较次数是1 * 0.6 + 2 * 0.3 + 3 * 0.1 = 1.5

答案 1 :(得分:-1)

不,因为访问数组中的元素需要花费O(1)时间,并且它不依赖于数组中此元素的位置。因此arr[0]arr[10000]应该花费相同的时间。

如果您将拥有链接列表或二叉树之类的内容,那么将更高概率访问的元素放在更接近开头的位置是有意义的。