2015/06/25 by Mütze, Torsten, Nummenpalo, Jerri
#Combinatorics (math.CO) #Data Structures and Algorithms (cs.DS) #Discrete Mathematics (cs.DM) #FOS: Computer and information sciences #FOS: Mathematics
paper · doi:10.48550/arxiv.1506.07898
For any integer n≥ 1 a middle levels Gray code is a cyclic listing of all bitstrings of length 2n+1 that have either n or n+1 entries equal to 1 such that any two consecutive bitstrings in the list differ in exactly one bit. The question whether such a Gray code exists for every n≥ 1 has been the subject of intensive research during the last 30 years, and has been answered affirmatively only recently [T. Mütze. Proof of the middle levels conjecture. Proc. London Math. Soc., 112(4):677--713, 2016]. In this work we provide the first efficient algorithm to compute a middle levels Gray code. For a given bitstring, our algorithm computes the next ℓ bitstrings in the Gray code in time O(nℓ(1+(n)/(ℓ))), which is O(n) on average per bitstring provided that ℓ=Ω(n).