ABSTRACT

A ranking algorithm determines the position (or rank) of a combinatorial object among all the objects; an unranking algorithm finds the object having a specified rank. Thus, ranking and unranking can be considered as inverse operations. Efficient ranking and unranking algorithms have several potential uses. Use of ranking and unranking algorithms is in storing combinatorial objects in the computer. Instead of storing a combinatorial structure, which could be quite complicated, an alternative would be to simply store its rank, which of course is just an integer. If the structure is needed at any time, then it can be recovered by using the unranking algorithm.