A Constant-Time Algorithm for Middle Levels Gray Codes
For any integer n ≥ 1 , a middle levels Gray code is a cyclic listing of all n -element and ( n + 1 ) -element subsets of { 1 , 2 , … , 2 n + 1 } such that any two consecutive sets differ in adding or removing a single element. The question whether such a Gray code exists for any n ≥ 1 has been th...
Saved in:
Published in | Algorithmica Vol. 82; no. 5; pp. 1239 - 1258 |
---|---|
Main Authors | , |
Format | Journal Article |
Language | English |
Published |
New York
Springer US
01.05.2020
Springer Nature B.V |
Subjects | |
Online Access | Get full text |
Cover
Loading…
Summary: | For any integer
n
≥
1
, a
middle levels Gray code
is a cyclic listing of all
n
-element and
(
n
+
1
)
-element subsets of
{
1
,
2
,
…
,
2
n
+
1
}
such that any two consecutive sets differ in adding or removing a single element. The question whether such a Gray code exists for any
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 a follow-up paper [T. Mütze and J. Nummenpalo. An efficient algorithm for computing a middle levels Gray code.
ACM Trans. Algorithms
, 14(2):29 pp., 2018] this existence proof was turned into an algorithm that computes each new set in the Gray code in time
O
(
n
)
on average. In this work we present an algorithm for computing a middle levels Gray code in optimal time and space: each new set is generated in time
O
(
1
)
on average, and the required space is
O
(
n
)
. |
---|---|
Bibliography: | ObjectType-Article-1 SourceType-Scholarly Journals-1 ObjectType-Feature-2 content type line 14 |
ISSN: | 0178-4617 1432-0541 |
DOI: | 10.1007/s00453-019-00640-2 |