เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่ใช้ในอาร์เรย์ของ Numbers ฟังก์ชันควรจัดเรียงอาร์เรย์โดยใช้อัลกอริธึมการจัดเรียงแบบผสาน
ผสานการเรียงลำดับ
Merge Sort ประกอบด้วยสองส่วนหรือกระบวนการ -
- ส่วนแบบเรียกซ้ำที่แยกคอลเล็กชันเป็นหน่วยเดียว
- แล้วเป็นส่วนวนซ้ำที่รวมเข้าด้วยกันในลำดับที่ถูกต้อง
ตัวอย่าง
const arr = [23, 4, 67, 32, 1, 7, 56, 5, 89]; const mergeSort = arr => { if (arr.length < 2){ return arr; } const middle = Math.floor(arr.length / 2); const left = arr.slice(0, middle), right = arr.slice(middle, arr.length); return merge(mergeSort(left), mergeSort(right)); }; const merge = (left, right) => { const res = []; while (left.length && right.length) { if (left[0] <= right[0]){ res.push(left.shift()); } else{ res.push(right.shift()); }; } while (left.length){ res.push(left.shift()); }; while (right.length){ res.push(right.shift()); }; return res; }; console.log(mergeSort(arr));
ผลลัพธ์
และผลลัพธ์ในคอนโซลจะเป็น −
[ 1, 4, 5, 7, 23, 32, 56, 67, 89 ]