Book contents
6 - Union-Find and Related Structures
Published online by Cambridge University Press: 25 January 2011
Summary
The problem known as “union-find” is to keep track of a partition of a set, in which partition classes may be merged, and we want to answer queries whether two elements are in the same class. This problem was first discussed in Arden, Galler, and Graham (1961) and Galler and Fisher (1964) with the motivation of keeping track of the equivalence of identifiers, because in Fortran and several other early languages it was possible to give several names to the same variable. Later, much more important applications were found, and this step of keeping track of a partition of a set whose classes grow together can be found, for example, in the minimum-spanning-tree algorithms of Kruskal and Borůvka.
The large number of papers generated by this problem and its relatives are not so much motivated by the difficult structures they use, but by the difficulties of the analysis. Also, it turned out that the correct answer very much depends on the exact question and the computational model. This is one of the two places in algorithms where the inverse Ackermann function occurs, an extremely slow-growing function, and it not only occurs as a technical device, but also gives the correct order of the amortized complexity of the classical solution to this problem.
The structures related to the union-find problem are again, like the binary search trees, useful building blocks in the construction of more complicated data structures.
- Type
- Chapter
- Information
- Advanced Data Structures , pp. 278 - 320Publisher: Cambridge University PressPrint publication year: 2008