Generating Bracelets in Constant Amortized Time

Joe Sawada · SIAM Journal on Computing · 2001

A bracelet is the lexicographically smallest element in an equivalence class of strings under string rotation and reversal. We present a fast, simple, recursive algorithm for generating (i.e., listing) k-ary bracelets. Using simple bounding techniques, we prove that the algorithm is optimal in the sense that the running time is proportional to the number of bracelets produced. This is an improvement by a factor of n (where n is the length of the bracelets being generated) over the fastest, previously known algorithm to generate bracelets. (A correction has been added to the end of this article.)

Read the paper · More papers on PaperTik