130
правок
Изменения
→Псевдокод получения кода Грея
gray_code(n):
'''if ''' n == 1: '''return = ''' [{1}] '''else''':
result = []
perms = gray_code(n - 1)
backward = false
'''for ''' perm in perms: '''if ''' backward:
current = concat(perm, {n})
result.append(current)
'''for ''' (i = n; i > 1; i--):
swap(current[i - 1], current[i])
result.append(current)
'''else''':
current = concat({n}, perm)
result.append(current)
'''for ''' (i = 1; i < n; i++):
swap(current[i], current[i + 1])
result.append(current)
backward = !backward
'''return ''' result
== Сведение задачи построения кода Грея для перестановок к графам ==