Изменения

Перейти к: навигация, поиск

Коды Грея для перестановок

4 байта добавлено, 17:25, 6 декабря 2014
Псевдокод получения кода Грея
'''for''' perm in perms: <font color=darkgreen>// perm {{---}} текущая перестановка</font color=darkgreen>
'''if''' backward:
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; i > 1; i--):
swap(current[i - 1], current[i])<font color=darkgreen>//переставляем n</font color=darkgreen> result.append(current) <font color=darkgreen>//добавляем в ответ перестановку current</font color=darkgreen>
'''else''':
current = concat({n}, perm) <font color=darkgreen>// дописываем {n} в начало perm</font color=darkgreen>
swap(current[i], current[i + 1]) <font color=darkgreen>//переставляем n</font color=darkgreen>
result.append(current) <font color=darkgreen>//добавляем в ответ перестановку current</font color=darkgreen>
backward = !backward <font color=darkgreen>//меняем состояние backward</font color=darkgreen>
'''return''' result <font color=darkgreen>//возвращаем ответ в виде списка</font color=darkgreen>
130
правок

Навигация