# единиц Num1). Затем,

единиц Num1). Затем, при повторном проходе в том же линейном порядке, в соответствующее количество ячеек записываются нули, после чего - оставшиеся единицы. Ясно, что трудоемкость алгоритма при оценке O(N) составит в точности 2N. Однако, вместо двойного просмотра удается обойтись лишь одним проходом по массиву, то есть N шагами. Идея состоит в том, чтобы обрабатывать массив с двух сторон, двигаясь навстречу. Для этого инициализируются сразу две индексных переменных - IndexLeft и IndexRight, причем первая переменная увеличивается, начиная со значения 0, а вторая - уменьшается от N-1. Начав просмотр вектора слева и пропуская все элементы, стоящие &quot;на месте&quot;, то есть нули, добираемся до 1. Как только обнаруживается это &quot;нарушение&quot;, переключаемся на обработку справа налево. Теперь, при попадании на &quot;плохой&quot; элемент справа, то есть на нуль, следует обменять содержимое компонент Mas[IndexLeft] и Mas[IndexRight], после чего, разумеется, оба индекса вновь &quot;растут&quot;

Индекс
Элементарные функции Линейные уравнения Нелинейные уравнения Случайные числа
встречи для интима.