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

การจัดเรียงอาร์เรย์แบบคี่-คู่ (Odd-Even Sort) - JavaScript

จัดเรียงอาร์เรย์ให้เลขคู่อยู่หน้า (เรียงน้อยไปมาก) ตามด้วยเลขคี่ (เรียงน้อยไปมาก)

ตัวอย่าง

// Input: [2, 5, 2, 6, 7, 1, 8, 9]
// Output: [2, 2, 6, 8, 1, 5, 7, 9]

ตัวอย่างโค้ด

const arr = [2, 5, 2, 6, 7, 1, 8, 9];

const isEven = num => num % 2 === 0;

const sorter = (a, b) => {
  // คู่มาก่อนคี่
  if (isEven(a) && !isEven(b)) return -1;
  if (!isEven(a) && isEven(b)) return 1;
  // เหมือนกัน (คู่-คู่ หรือ คี่-คี่) เรียงน้อยไปมาก
  return a - b;
};

const oddEvenSort = arr => arr.sort(sorter);

oddEvenSort(arr);
console.log(arr);

หลักการ Comparator Function

  • คืนค่าติดลบ: a มาก่อน b
  • คืนค่าบวก: b มาก่อน a
  • คืน 0: คงลำดับเดิม

ผลลัพธ์

[ 2, 2, 6, 8, 1, 5, 7, 9 ]

ประยุกต์ใช้: การจัดกลุ่มข้อมูล การแสดงผลรายงาน การเตรียมข้อมูลสำหรับอัลกอริทึมอื่น