Другие языки программирования и технологии

Есть последовательность из восьми чисел: 7 4 2 8 3 1 6 5 Над этой последовательностью разрешено выполнять только о

минимальное количество - это итак понятно.. . 8... потому что каждое число находится не на своем месте.. . а вот как этого добиться - уже вопрос посложнее.. . тут ведь проблема не с кодом а с тем что думать надо.. .
как вариант можно поступить так: ищем минимальное нечетное и меняем его с первой позицией (оно ведь там должно стоять).. . затем ищем следующее ( n = n + 2 ) и меняем со второй.. . и так пока не пройдем весь цикл по четным числам.. .
у нас получится что-то типа:
1 3 5 7 4 8 6 2
конечно запоминаем позицию последнего изменения (в нашем случае 4 - у нас ведь 4 нечетных числа) и со следующей позиции (5-ой то есть) начинаем проверять все то же самое, но на четность.. . смотрим, теперь будем вставлять начиная не с первой позиции и не с начала массива чисел, а с 5-ой позиции до конца (до 8-ой).. . таким образом мы работать будем уже с последней частью - 4 8 6 2...
ищем минимальное четное и меняем его с тем что в первой позиции ( 2 8 6 4 ), затем следующее - 4-ка ( 2 4 6 8 )
в итоге вышло даже 6 перемещений.. . красотень.. .

скажу честно - задача заставляет подумать над решением.. . сам минут 5 рассуждал что да как )))
Oleg M23
Oleg M23
34 293
Лучший ответ
Если менять можно любые произвольные элементы, то минимум - это 6 обменов (как вариант решение указано выше Александром) .
Хотя у меня программа выдала другой вариант перестановок, но так-же в 6 обменов.

Если же менять можно любую пару рядом стоящих элементов, то у меня получилось 16 :
74283165 - 72483165 - 72438165 - 72348165 - 73248165 - 37248165 - 37241865 - 37214865 - 37124865 - 31724865 - 13724865 - 13724685 - 13726485 - 13726458 - 13726548 - 13725648 - 13752648 - 13572648 - .
ЯП какой?
Длинный код получится, надо сидеть и думать, лучше поищи в интернете готовые решения
Это Паскаль, я так понял
Елнур Саканов
Елнур Саканов
1 884

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