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

การใช้ Insertion Sort เรียงอาร์เรย์ตัวเลขจากน้อยไปมากใน JavaScript


ปัญหา

เราต้องเขียนฟังก์ชัน 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]