首页 > 解决方案 > 列表搜索的最佳/最坏情况下的步数

问题描述

我有一个长度为“n”的列表,它是一个未知的偶数。具有偶数索引的单元格中存在键“x”的概率是其他单元格的两倍。例如:

 _ _ _ _ _ _ _ _ _ _ _ _
|_0_|_1_|_2_|_3_|_4_|_5_|    index

  |   |   |   |   |   |
 _ _ _ _ _ _ _ _ _ _ _ _
|_9_|_5_|_7_|_3_|_8_|_0_|    value

因为“x”肯定存在,所以所有概率的总和为 1。因此每个单元格可以有 1/概率长度;但根据第一行,分布是不同的。因此:

p(T) = 1
p(0) + p(2) + p(4) = 2 * (p(1) + p(3) + p(5))

如何计算平均比较时间?

标签: c++algorithm

解决方案


这是在您的搜索x索引中找到的概率:i

公式


推荐阅读