已排序陣列的大小到小排序演算法在 JavaScript 中


假設我們有一個已經按升序排列的整數陣列。我們需要編寫一個 JavaScript 函式,在不使用內建 Array.prototype.sort() 方法的情況下按如下方式對陣列進行排序 −

  • 第一個數字應該是最大的數字

  • 第二個數字應該是最小的數字

  • 第三個數字應該是第二大的數字

  • 第四個數字應該是第二小的數字

  • 以此類推。

例如 −

如果輸入陣列為 −

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

那麼輸出應為 −

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

範例

以下是程式碼 −

const arr = [1, 2, 3, 4, 5, 6];
const alternativeSort = (arr = []) => {
   const res = [];
   let left = 0;
   let right = arr.length - 1;
   while (res.length < arr.length) {
      res.push(arr[right]);
      if (left !== right) {
         res.push(arr[left]);
      }
      left++;
      right--;
   };
   return res;
};
console.log(alternativeSort(arr));

輸出

以下是控制檯輸出 −

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

更新時間: 20-Jan-2021

261 次瀏覽

開啟你的 職業

透過完成課程獲得認證

開始
廣告
© . All rights reserved.