Изменения

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

Получение следующего объекта

16 байт убрано, 08:31, 12 ноября 2010
Нет описания правки
== Определение ==
'''Получение следующего объекта''' - это нахождение следующего объекта в лексико графическом лексикографическом порядке.
== Алгоритм ==
Двигаясь с конца массива сравниваем соседние элементы, если a[i - 1] > a[i] двигаемся дальше, если a[i - 1] < a[i], m := i - 1(поскольку мы нашли m дальше не смысла двигаться) выходим из цикла.
k := i, такое что a[i] > a[m] и a[i] = min(a[i]), при i > m.
Меняем местами a[m] и a[k] местами.
Осталось упорядочить по возрастанию элементы, стоящие справа от нового m-го элемента, но т.к. они упорядочены по убыванию, достаточно их обернуть.
----

Навигация