Изменения

Перейти к: навигация, поиск
Описание алгоритма
Если же ребра нет, то найдем такую вершину <tex>\mathrm{v}_j</tex>, что <tex> \mathrm{v}_j \in{\mathbb{V}} \setminus \{ \mathrm{v}_i, \mathrm{v}_{i+1} \} </tex>,
и существуют ребра <tex> \mathrm{v}_i \mathrm{v}_j</tex> и <tex> \mathrm{v}_{i+1} \mathrm{v}_{j+1} </tex>.
После чего Если <tex>i < j </tex> то перевернем часть перестановки от <tex>i+1 </tex> до <tex> j </tex> (включительно).В случае если <tex> i > j </tex> обменяем в перестановки элементы на позициях <tex> (i + 1 + k)\ mod\ n </tex> и <tex> (считаемj - k +n)\ mod\ n </tex>, что наша перестановка зациклиный списокгде <tex>k = \overline{0, (j + n - i)\ div\ 2}</tex>.
Например, если <tex>n = 10, i = 8, j = 1</tex>, то <tex>\mathrm{v}_9 </tex> и <tex>\mathrm{v}_1</tex> поменяются местами, а <tex>\mathrm{v}_{10}</tex> останется на месте.
71
правка

Навигация