c++ - 列表搜索的最佳/最坏情况下的步数
问题描述
我有一个长度为“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))
如何计算平均比较时间?
解决方案
这是在您的搜索x
索引中找到的概率:i
推荐阅读
- vue.js - 在时间范围内路由回
- multithreading - 将每个 GStremer 管道运行到一个单独的 (GLib) 线程中
- wordpress - 谷歌云平台与其他托管
- r - 来自 quantmod R 包的 getSymbols 函数在实时交易期间未获得正确的日开盘价
- crystal-reports - 是否可以根据用户输入调整 Crystal Report 中的列数(从左到右)?
- mongodb - 给定一个对象数组,如何根据数组的每个匹配项过滤数据库中现有对象的结果?
- c# - 将 40/50 条记录插入 Azure 表存储有时需要超过 30 秒,因此会引发超时异常
- python - 为什么 Python 请求无法解析 TikTok API 数据?
- ios - 在 SwiftUI 中一次扫描一个条形码
- java - 如何使 LinkedlList 只接受选定的类