For any forest $G = (V, E)$ it is possible to orient the edges $E$ so that no vertex in $V$ has out-degree greater than $1$. This paper considers the incremental edge-orientation problem, in which the edges $E$ arrive over time and the algorithm must maintain a low-out-degree edge orientation at all times. We give an algorithm that maintains a maximum out-degree of $3$ while flipping at most $O(\log \log n)$ edge orientations per edge insertion, with high probability in $n$. The algorithm requires worst-case time $O(\log n \log \log n)$ per insertion, and takes amortized time $O(1)$. The previous state of the art required up to $O(\log n / \log \log n)$ edge flips per insertion. We then apply our edge-orientation results to the problem of dynamic Cuckoo hashing. The problem of designing simple families $\mathcal{H}$ of hash functions that are compatible with Cuckoo hashing has received extensive attention. These families $\mathcal{H}$ are known to satisfy \emph{static guarantees}, but do not come typically with \emph{dynamic guarantees} for the running time of inserts and deletes. We show how to transform static guarantees (for $1$-associativity) into near-state-of-the-art dynamic guarantees (for $O(1)$-associativity) in a black-box fashion. Rather than relying on the family $\mathcal{H}$ to supply randomness, as in past work, we instead rely on randomness within our table-maintenance algorithm.
翻译:对于任何森林 $ = (V, E) 任何森林 $ = (V, E), 都可以将边缘调整为 $E 美元, 使美元中的顶端不会超过 $。 此算法考虑到递增边缘方向问题, 边端会随着时间推移而来, 算法必须始终保持低度边缘方向 。 我们给出一个算法, 以最多O( log\ log n n n) 的方式在边缘插入时翻转最多为 $O (log\ log n n) 的边端方向, 以美元为高。 此算法需要最坏的情况时间 $( log n\ log\ log\ log n log n) 的顶端点时间, 以美元为单位, 以美元为单位的顶点, 以美元为单位的顶点, 以美元为单位的顶点, 以美元为单位的顶点的顶点, 以美元 美元 。