我有一个按概率递减顺序排列的项目列表。分布遵循zipf的.i.e关键i的相对概率是1 / i。在这些情况下,顺序搜索的预期搜索时间是多大的。
答案 0 :(得分:0)
预期的搜索时间是以下的总和:
第i个元素乘以找到第i个元素所需工作的概率。
相对概率,这是:1 * 1 + 1/2 * 2 + 1/3 * 3 + ... = N
要得到结果,你必须对其进行标准化,也就是说,你必须将它除以相对概率之和:1 + 1/2 + 1/3 + ...,这是N次谐波数,大约记录N。
所以答案是O(N / log N)。