28、选择问题的时空权衡算法

选择问题的时空权衡算法

1. 基本引理与定理

在只读内存中处理选择问题时,有一些重要的引理和定理。
- 引理 8 :给定只读内存中的一个包含 $n$ 个元素的列表,其中 $m$ 个为活跃元素。可以在 $O(m \lg m + n \lg m / \lg p)$ 时间内,使用 $O(p^2 \lg m / \lg p)$ 额外空间,找到列表中长度为 $2p - 2$ 的元素序列,使得每个桶中的元素数量最多为 $\lceil m / p \rceil$,其中 $p \geq 2$ 是一个整数参数。
- 证明思路 :在引理 6 的证明中,只需将活跃元素与块的分割器进行比较。但在最坏情况下,需要进行 $2n$ 次比较(与过滤器)来识别活跃元素。时间和空间的递归关系满足 $T(m) = pT(m/p) + O(n + m \lg p)$,解得时间复杂度为 $O(n \lg m / \lg p + m \lg m)$;空间需求 $S(m)$ 满足 $S(m) = S(m/p) + O(p^2)$,解得空间复杂度为 $O(p^2 \lg m / \lg p)$。在找到列表的 $2p - 2$ 个分割器后,将所有活跃元素与分割器进行比较,确定递归的桶并适当修改过滤器。由于最多有 $\lceil n / p \rceil$ 个活跃元素,选择过程可以在 $O(\lg n / \lg p)$ 次迭代内完成。
- 定理 3 :对于只读内存中的一个包含 $n$ 个元素的列表,可以使用 $O(n \lg n + n \lg^2 n / \lg^2 p)$ 时间和 $O(p^2 \lg n / \lg p)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值