Учитывая отсортированный массив, есть ли способ вставить определенное количество инверсий (в случайных местах)? Сначала я думал, что это будет просто, но тогда осознанные инверсии могут «отменить» друг друга. Рассмотрим:Как добавить определенное количество инверсий в отсортированный массив
начиная с массива: 2,4,6,8
одна инверсия: 4,2,6,8
теперь, если вы хотите добавить еще одну инверсию (в случайном порядке), вы могли бы в конечном итоге с 4,2,8,6, что было бы хорошо, или вы могли бы получить 2,4,6,8, что было бы плохо, поскольку оно вернулось к оригиналу.
Он также не работает, удалив индекс после его использования. Например, 1,2,3 -> 3,2,1, если мы исключили первый и последний индекс, то мы пропустим перестановку 3,1,2, поэтому этот подход не работает.
Это не должно быть массив. Это может быть список или другая структура.
Любые предложения по изучению алгоритмов?
«теперь, если вы хотите добавить еще одну инверсию (в случайном порядке), вы можете получить 4,2,6,8, что было бы хорошо». Что добавляет 0 инверсий, нет? Почему это считается хорошим? –
@AmiTavory спасибо фиксированная опечатка – Celeritas
Что вы подразумеваете под «add», вы имеете в виду обмен целыми целыми числами за один ход? – shole