The fusion tree is a deterministic data structure for storing a dynamic ordered set of integers, enabling predecessor, successor, insertion, and deletion operations in sub‑logarithmic time. It was introduced by Michael L. Fredman and Dan E. Willard in their 1990 paper “Surpassing the information theoretic bound with fusion trees” and represents a breakthrough in the theoretical study of data‑structure lower bounds.
Principle of operation
A fusion tree stores keys of w‑bit length (where w is the machine word size) in a B‑tree‑like hierarchical layout with a high branching factor B = Θ(w^{1/5}). Each node contains up to B‑1 keys and B child pointers. The key innovation is the use of word‑level parallelism to locate the appropriate child for a given search key in O(1) time per node, rather than the O(log B) time required by ordinary B‑trees.
The constant‑time child selection is achieved through two techniques:
- Sketching – Each stored key is transformed into a “sketch” consisting of a subset of its most significant bits. The sketches of all keys in a node are packed into a single word.
- Parallel comparison – By subtracting the sketch of the query key from the packed sketches and applying a multiplication with a pre‑computed constant, the algorithm isolates the most significant differing bit across all keys simultaneously, revealing the correct child index with a single word‑level operation.
Complexity
For a set of n w‑bit integers, the fusion tree supports:
- Search (predecessor/successor) – O(log n / log w) time.
- Insertion – O(log n / log w) amortized time.
- Deletion – O(log n / log w) amortized time.
These bounds improve upon the classic O(log n) bound of binary search trees when w = Ω(log n), which is typical on modern RAM models where the word size is at least Θ(log n).
Applications
Fusion trees are primarily of theoretical interest, demonstrating that the information‑theoretic lower bound of Ω(log n) for comparison‑based searching can be circumvented using word‑level operations. They have been used as a building block in:
- Faster integer sorting algorithms (e.g., achieving O(n log log n) time).
- Data structures for integer‑indexed priority queues.
- Theoretical models for external memory and cache‑oblivious algorithms.
Limitations
While the asymptotic performance is superior, practical implementations of fusion trees involve substantial constant factors due to the complex bit‑manipulation required for sketching and parallel comparison. Consequently, they are rarely employed in production software, where simpler balanced trees (e.g., red‑black or AVL trees) or B‑trees are preferred.
Historical context
The result sparked a line of research on “word‑RAM” data structures, leading to subsequent developments such as exponential search trees, y‑fast tries, and van Emde Boas trees, all of which explore the trade‑off between word‑size parallelism and operation time.
References
- Fredman, M. L.; Willard, D. E. (1990). “Surpassing the information theoretic bound with fusion trees”. SIAM Journal on Computing. 19 (1): 80–100.
- Willard, D. E. (1992). “Log‑logarithmic worst‑case range queries”. SIAM Journal on Computing. 21 (6): 1152–1171.