Abstract
We consider the problem of defining a linear order on a set of combinatorial objects so that the following two operations can be performed efficiently: (1) determine the rank of an object in the linear order (ranking); (2) compute an object from its rank (unranking). Typical applications of such an ordering include testing a program on a random or selected set of input instances and searching for counterexamples of a conjecture involving structured objects. We reduce the problem of finding such a linear order to the problem of constructing a special mapping on the set of combinatorial objects called regular reduction. We demonstrate the power of regular reductions by developing O(n) time procedures for ranking and unranking B-trees on n leaves after O(n2) time preprocessing; the best previous ordering algorithm, although also running in linear time, required exponential time and space preprocessing. Our new paradigm also yields improved ranking and unranking algorithms for binary trees of bounded height and for height-balanced trees (see [7]).
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have
Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.