117
правок
Изменения
→Специализация алгоритма для генерации следующей перестановки
== Специализация алгоритма для генерации следующей перестановки ==
Двигаемся справа налево по элементам объекта, пока не найдем элемент, нарушающий убывающую последовательность. Обменяем его с минимальным элементом, большим нашего, стоящим правее. Далее перевернем правую часть.
<code>
bool Next(vector<int> &a) {
int n = a.size();
int l = j + 1, r = n - 1;
while (l < r) swap(a[l++],a[r--]);
return true;
}
</code>
=== Пример работы ===