Учитывая, что у меня есть такой массив [..., n-2, n-1, n, n + 1, n + 2, ...].Я хотел бы отсортировать его таким образом [n, n + 1, n-1, n + 2, n-2, ...], где n равно середине моего массива.
Например,:
Ввод:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
Выход:
[5, 6, 4, 7, 3, 8, 2, 9, 1, 0]
let arrayNotSorted = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
let positionMiddleArray = Math.trunc(arrayNotSorted.length / 2);
let arraySorted = [arrayNotSorted[positionMiddleArray]];
for(let i=1; i <= positionMiddleArray; i++){
if(arrayNotSorted[positionMiddleArray + i] !== undefined){
arraySorted.push(arrayNotSorted[positionMiddleArray + i]);
}
if(arrayNotSorted[positionMiddleArray - i] !== undefined){
arraySorted.push(arrayNotSorted[positionMiddleArray - i]);
}
}
console.log('Not_Sorted', arrayNotSorted);
console.log('Sorted', arraySorted);
То, что я сделал, работает правильно, но я хотел бы знать, есть ли лучший или более эффективный способ сделать это?