130
правок
Изменения
→Псевдокод получения кода Грея
('''for''' perm '''in''' perms) <font color=darkgreen> //perm {{---}} текущая перестановка</font color=darkgreen>
'''if''' backward
'''list'''<'''int'''> current = concat(perm, {n})<font color=darkgreen> //дописываем {n} в конец perm</font color=darkgreen> result.append(current)<font color=darkgreen> //добавляем в ответ перестановку current</font color=darkgreen>
('''for''' i = n '''downto''' 2)
swap(current[i - 1], current[i])<font color=darkgreen> //переставляем n</font color=darkgreen> result.append(current) <font color=darkgreen> //добавляем в ответ перестановку current</font color=darkgreen>
'''else'''
'''list'''<'''int'''> current = concat({n}, perm) <font color=darkgreen> //дописываем {n} в начало perm</font color=darkgreen> result.append(current) <font color=darkgreen> //добавляем в ответ перестановку current</font color=darkgreen>
('''for''' i = 1 '''to''' n - 1)
swap(current[i], current[i + 1]) <font color=darkgreen> //переставляем n</font color=darkgreen> result.append(current) <font color=darkgreen> //добавляем в ответ перестановку current</font color=darkgreen> backward = '''not''' backward <font color=darkgreen> //меняем состояние backward</font color=darkgreen> '''return''' result <font color=darkgreen> //возвращаем ответ в виде списка</font color=darkgreen>
== Примеры кодов Грея для перестановок ==