Title
The coolest way to generate combinations
Abstract
We present a practical and elegant method for generating all (s,t)-combinations (binary strings with s zeros and t ones): Identify the shortest prefix ending in 010 or 011 (or the entire string if no such prefix exists), and rotate it by one position to the right. This iterative rule gives an order to (s,t)-combinations that is circular and genlex. Moreover, the rotated portion of the string always contains at most four contiguous runs of zeros and ones, so every iteration can be achieved by transposing at most two pairs of bits. This leads to an efficient loopless and branchless implementation that consists only of two variables and six assignment statements. The order also has a number of striking similarities to colex order, especially its recursive definition and ranking algorithm. In the light of these similarities we have named our order cool-lex!
Year
DOI
Venue
2009
10.1016/j.disc.2007.11.048
Discrete Mathematics
Keywords
Field
DocType
prefix shift.,constant-extra-space,gray code order,branchless algorithm,binary strings,prefix shift,prefix rotation,colex,constant extra space,combinations,loopless algorithm,. gray code order,gray code
Similitude,Discrete mathematics,Combinatorics,Recursion (computer science),Ranking,Loopless algorithm,Iterative method,Gray code,Prefix,Mathematics,Recursive definition
Journal
Volume
Issue
ISSN
309
17
Discrete Mathematics
Citations 
PageRank 
References 
18
0.97
16
Authors
2
Name
Order
Citations
PageRank
Frank Ruskey1906116.61
Aaron Williams213920.42