Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

การจัดเรียงอาร์เรย์ที่เรียงแล้วให้สลับ max-min ใน JavaScript

บทความนี้สาธิตการจัดเรียง sorted array ใหม่เป็นรูปแบบ: max, min, 2nd max, 2nd min, ...

ตัวอย่าง

input: [1, 2, 3, 4, 5, 6]
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]

คำอธิบาย

Two pointers: left=0, right=n-1 สลับ push right แล้ว left จนครบ

Time: O(n), Space: O(n) สำหรับ result array

หากต้องการ in-place ต้องใช้ encoding technique (เก็บ 2 ค่าใน 1 index)