130
правок
Изменения
→Доказательство корректности
== Доказательство корректности ==
Очевидно что требование о том что каждая генерируемая перестановка отличается от предыдущей транспозицией двух соседних элементов выполнено исходя из самого алгоритма. Осталось доказать , что таким образом мы сгенерируем все перестановки. Будем использовать обозначениe <tex>(a,</tex> ←<tex>)</tex> - элемент с заданным направлением(компонента).
{{Утверждение
|id=id1
|statement=Число <tex>n</tex> в перестановке не является подвижным элементом тогда и толко тогда когда первая компонента перестановки есть <tex>(n,</tex> ←<tex>)</tex> или последняя компонента есть <tex>(n,</tex> →<tex>)</tex>
}}