算法 – 有效地从链接哈希表中挑选一个随机元素?
只是为了练习(而不是作业作业),我一直在试图解决这个问题(CLRS,第3版,练习11.2-6):
到目前为止,我认为每个键的返回概率是1 / n.如果我们尝试得到1到n之间的随机值x,并尝试按顺序首先按桶排序,然后沿着桶中的链排列找到第x个密钥,那么将通过进行O(m)找到合适的桶通过桶逐个和O(L)时间获得链中的正确键. 解决方法
重复以下步骤,直到返回一个元素:
>随机选择一个桶.令k是桶中元素的数量. 每桶的预期数量为n / m.采样尝试成功的概率为(n / m)/ L.因此,找到一个存储桶所需的尝试次数为L * m / n.与从桶中检索元素的O(L)成本一起,预期运行时间为O(L *(1 m / n)). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |