Как отсортировать массив согласно правилу, которое дано в задании?
Имеется массив: [5, 3, 1, 2, 4, 6] , по правилу его нужно отсортировать так: 1-5, 2-3, 3-1, 4 -2, 5-4, 6-6, т. е. поменять элемента массива местами в установленном порядке.
Пытался решить эту задачку, да вот не выходит.
let key_first = [5, 3, 1, 2, 4, 6],
tempKey;
for( let i = 0; i < key_first.length; i++) {
tempKey = key_first[i];
key_first[i] = key_first[key_first[i] - 1];
key_first[key_first[i] - 1] = tempKey;
}
PS. Кто не понял, это стандартная сортировка. Я сначала бегло посмотрел, подумал, что это поиск решения арифметической прогрессии. Но потом понял, что ошибся.
Спасибо что попытались помочь!
В условии мы должны менять местами элементы.
По условию мы должны менять элементы массива местами, так: 1-5, 2-3, 3-1, 4 -2, 5-4, 6-6; Т. е. 1 меняем на 5, затем элемент 2 меняет на 3, и т. д.
Самому конечно посчитать не составит труда, но к сожалению реализовать в программе не получается.
Конечный ответ должен получится таким: [3, 5, 4, 1, 2, 6]
Rinych Abs, фух, путанно поличилось. Я просто подумал, что меняем 1-5 получится 135246, 2-3 -- 125346 и т.д. А тут тоже не так. Есть хоть какая-то логическая зависимость?
Есть массив [5, 3, 1, 2, 4, 6], этот массив надо так скажем зашифровать. И шифровка должна проходить таким образом 1-5, 2-3, 3-1, 4 -2, 5-4, 6-6. Т.е сколько чисел в массиве, такое же кол-во элементов шифровки, в данной случае от 1 до 6. Вы верно поняли тут
1-5 получится 135246, 2-3 -- 125346
.
Начал писать скрипт, как раз цикл сортирует нормально именно первые два раза, а потом все едет, можете глянуть тут:
Rinych Abs, мне было бы проще помочь, если бы я знал конечную цель. Возможно, вы выбрали не верный метод решения вопроса.
Например: если идет речь о шифровании, а готовые решения не устраивают, я бы предложил использование побитовых операций. Для шифровки смещаем на какое-то количество бит вперед, получается совершенно бессмысленный кусок кода, пока его не вернешь на такое же количество бит назад. Из простых решений - это очень надежный способ криптографии.
Но логику именно ваших перемещений элементов массива я так и не уловил, извините.