In computer science, a fusion tree is a type of tree data structure that implements an associative array on -bit integers on a finite universe, where each of the input integer has size less than 2w and is non-negative. When operating on a collection of key–value pairs, it uses space and performs searches in time, which is asymptotically faster than a traditional self-balancing binary search tree, and also better than the van Emde Boas tree for large values of . It achieves this speed by using certain constant-time operations that can be done on a machine word. Fusion trees were invented in 1990 by Michael Fredman and Dan Willard. Several advances have been made since Fredman and Willard's original 1990 paper. In 1999 it was shown how to implement fusion trees under a model of computation in which all of the underlying operations of the algorithm belong to AC0, a model of circuit complexity that allows addition and bitwise Boolean operations but does not allow the multiplication operations used in the original fusion tree algorithm. A dynamic version of fusion trees using hash tables was proposed in 1996 which matched the original structure's runtime in expectation. Another dynamic version using exponential tree was proposed in 2007 which yields worst-case runtimes of per operation. Finally, it was shown that dynamic fusion trees can perform each operation in time deterministically. This data structure is helpful for predecessor and successor search operations which provide an output as the greatest key value smaller than the queried key or the smallest key value larger than the queried key, respectively. The partial result of most significant bit locator in constant time has also helped a lot of further research. The chief idea why this work is efficient is because it deploys word-level parallelism, which means that the computation on multiple words takes place simultaneously, making the number of overall operations way less than they should be. Other operations that can be performed on this data structure are add a key, and remove a key. How it works A fusion tree is essentially a B-tree with branching factor of (any small exponent is also possible as it will not have a great impact on the height of the tree), which gives it a height of . To achieve the desired runtimes for updates and queries, the fusion tree must be able to search a node containing up