Вращайте подмассивы, чтобы получить отсортированный массив - PullRequest
0 голосов
/ 22 мая 2018

Дан массив целых чисел a[1..n], где все элементы уникальны.После поворота подмассива a[i..j] мы получим новый массив a[1..i-1] a[j,j-1,..i+1,i] a[j+1..n]

Вопрос в том, чтобы найти минимальные шаги поворота для получения увеличивающегося массива [Проблема алгоритма].

Существует ли алгоритм малой сложности для решения этой проблемы?

Пример 1. Для массива 3 2 4 1 для сортировки массива необходимо выполнить два шага.

   3 2 [4 1]   // rotate subarray [4 1]
-> [3 2 1] 4   // rotate subarray [3 2 1]
-> 1 2 3 4

Пример 2. Для массива 5 4 6 7 3 1 2 необходимо выполнить три шага.

   5 4 [6 7 3] 1 2
-> 5 4 3 [7 6 1 2]
-> [5 4 3 2 1] 6 7
-> 1 2 3 4 5 6 7
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...