已排序数组的大小到小排序算法在 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 次浏览

开启你的 职业

通过完成课程获得认证

开始
广告