JavaScript 陣列的交替排序


我們需要編寫一個 JavaScript 函式,該函式採用一個數字陣列作為第一個且唯一的引數。

我們函式的任務是以交替的方式對陣列中存在的元素進行排序。

交替是指以下內容:

假設我們有一個數組 arr,目前只包含四個元素。然後,我們的函式應該對陣列中的元素進行改組,如下所示:

arr[0] < arr[1] > arr[2] < arr[3]

請注意,對於給定的陣列,可能有多種可能的解決方案,我們只需要返回任何可能的解決方案即可。

例如:

如果輸入陣列為:

const arr = [1, 2, 3, 4, 5, 6];

那麼其一種可能的輸出可能是:

const output = [ 3, 6, 2, 5, 1, 4 ];

示例

以下為程式碼:

const arr = [1, 2, 3, 4, 5, 6];
const alternateSort = (arr = []) => {
   arr.sort((a, b) => a - b);
   const N = arr.length;
   let mid = Math.floor(N/2);
   if(N % 2 !== 0){
      mid++;
   };
   const small = arr.splice(0, mid);
   const big = arr.splice(0,arr.length);
   for(let i = 0; i < N; i++){
      if(i % 2 === 0){
         arr[i] = small.pop()
      }else{
         arr[i] = big.pop()
      };
   };
};
alternateSort(arr);
console.log(arr);

輸出

以下為控制檯輸出:

[ 3, 6, 2, 5, 1, 4 ]

更新於: 18-Jan-2021

536 人次瀏覽

開啟您的 職業 生涯

完成課程以獲得認證

開始學習
廣告