ปัญหา
เราต้องเขียนฟังก์ชัน JavaScript ที่รับอาร์เรย์ของตัวเลข arr เป็นอาร์กิวเมนต์เดียว
ฟังก์ชันควรใช้ Insertion Sort algorithm เรียงอาร์เรย์ตัวเลขจากน้อยไปมาก
ตัวอย่างเช่น หากอินพุตคือ
Input
const arr = [5, 8, 1, 3, 9, 4, 2, 7, 6];
Output
const output = [1, 2, 3, 4, 5, 6, 7, 8, 9];
ตัวอย่าง
โค้ดด้านล่างนี้
const arr = [5, 8, 1, 3, 9, 4, 2, 7, 6];
const insertionSort = (arr = []) => {
let n = arr.length;
for (let i = 1; i < n; i++) {
let curr = arr[i];
let j = i - 1;
while ((j > -1) && (curr < arr[j])) {
arr[j + 1] = arr[j];
j--;
}
arr[j + 1] = curr;
}
return arr;
};
console.log(insertionSort(arr));ผลลัพธ์
[1, 2, 3, 4, 5, 6, 7, 8, 9]