【发布时间】:2010-10-15 12:55:41
【问题描述】:
什么是适合这项任务的数据结构?
我有一组 N 个项目。 N 很大。 每个项目都有一个与之相关的正权重值。
我想尽快做以下事情:
内循环:
根据物品的重量对物品进行取样。
[进程...]
更新K个物品的权重,其中K
当我说按重量抽样时,这与统一抽样不同。一个项目的可能性与其重量成正比。因此,如果有两件物品,一件重量为 0.8,一件重量为 0.2,那么它们的可能性分别为 80% 和 20%。
项目数 N 保持不变。权重在有界范围内,例如 [0, 1]。 权重之和并不总是为 1。
一种简单的方法需要 O(n) 个时间步来采样。 有 O(log(n)) 算法吗?
什么是适合这个任务的数据结构? 我认为红黑树是不合适的,因为它们将每个项目视为具有相同的权重。
【问题讨论】:
标签: algorithm data-structures statistics