这里我们将讨论乘法哈希方法。为此,我们使用哈希函数:ℎ(𝑥) = ⌊𝑚𝑥𝐴⌋ 𝑚𝑜𝑑 𝑚这里 A 是一个实值常数。此方法的优点是 m 的值不是那么关键。我们也可以将 m 设为 2 的幂。虽然 A 的任何值都会产生哈希函数,但某些 A 值比其他值更好。根据 Knuth 的说法,我们可以使用黄金分割率作为 A,所以 A 将是$$A=\frac{\sqrt5-1}{2}=0.61803398$$当然,无论为 A 选择什么值。鸽巢原理意味着如果 u ≥ … 阅读更多
与二项堆一样,斐波那契堆是树的集合。它们松散地基于二项堆。与二项堆中的树不同,斐波那契堆中的树是有根的但无序的。斐波那契堆中每个节点 x 都包含一个指向其父节点的指针 p[x],以及一个指向其任意一个子节点的指针 child[x]。x 的子节点通过一个称为 x 的子列表的循环双向链表链接在一起。子列表中的每个子节点 y 都有指针 left[y] 和 right[y] 分别指向 y 的左右兄弟节点。如果节点 y 只是… 阅读更多
二项堆是二项树的集合。二项树 Bk 是一个递归定义的有序树。二项树 B0 由单个节点组成。二项树 Bk 由两个二项树 Bk-1 组成。它们链接在一起。其中一个的根是另一个的左端子节点。一些二项堆如下所示:二项树的一些属性是:Bk 的二项树有 2k 个节点。树的高度是 k深度为 i 的节点正好有 $$\left(\begin{array}{c}k\ j\end{array}\right)$$ 个,对于范围 0 到 k 中的所有 i 二项堆二项堆… 阅读更多