117
правок
Изменения
м
for while (int i = ++pos + 1; i < n; ++i) a[ipos] = 0;
→Специализация алгоритма для генерации следующего битового вектора
a[pos] = 1;
return true;
}
|0||1||1||0||0||следующий битовый вектор
|}
== Специализация алгоритма для генерации следующей перестановки ==
Двигаемся справа налево по элементам объекта, пока не найдем элемент, нарушающий убывающую последовательность. Обменяем его с минимальным элементом, большим нашего, стоящим правее. Далее перевернем правую часть.