Изменения

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

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

455 байт добавлено, 17:01, 19 декабря 2011
Нет описания правки
Пусть нам известен код Грея для длины $n - 1$, записанный в массив prev_perm[i](j), где $i$ - номер перестановки, $j$ - номер элемента этой перестановки (номерация начинается с единицы).
t := falsetrue; {булевская переменная отвечающая за порядок перебора true: от начала к концу false: от конца к началу} for i := 1 to (n - 1)! do {перебираем все перестановкииз предыдущего кода Грея}
begin
insert(perm[i], t); {в зависимости от t вставляем элемент либо в начало, либо в конец перестановки} writeln(perm[i]); {выводим первую перестановку} for j := 1 to n - 1 do
begin
swap(perm[i], t); {в зависимости от t двигаем элемент влево или вправо} writeln(perm[i]); {выводим полученные перестановки}
end;
end;
94
правки

Навигация