@vadimkenny

Как из убывающей последовательности сделать возрастающую в c++?

Необходимо написать программу на c++:
В динамическом массиве из убывающих последовательностей сделать возрастающие

Например массив 5 10 8 3 2 11 9 8 7 после выполнения программы должен быть 5 2 3 8 10 7 8 9 11
То есть последовательности 10 8 3 2 и 11 9 8 7 от сортировались по возрастанию. А 5 так и осталась на месте
  • Вопрос задан
  • 303 просмотра
Решения вопроса 1
wataru
@wataru Куратор тега C++
Разработчик на С++, экс-олимпиадник.
1) Проходитесь по массиву, находя убывающие последовательности.

2) Разворачиваете каждую их них.

3) ???

4) PROFIT!

Вот вам подсказка, как можно выделять в массиве убывающие последовательности.
start = 0;
while (start < n) {
  end = start;
  ПОКА (start..end+1 - убывающая последовательность) {
    ++end;
  }
  // start..end - убывающая последовательность.
  start = end+1;
}


Развернуть кусок с i по j можно одним циклом while. Меняйте местами 2 крайних элемента и тогда останется развернуть кусок с i+1 по j-1.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы