https://bigfrontend.dev/problem/implement-Insertion-Sort
Even for Front-End Engineer, it is a must to understand how basic sorting algorithms work.
Now you are asked to implement Insertion Sort, which sorts an integer array in ascending order.
Do it in-place, no need to return anything.
Follow-up
What is time cost for average / worst case ? Is it stable?
/**
* @param {number[]} arr
*/
function insertionSort(arr) {
for (let i = 1; i < arr.length; i++) {
let currentVal = arr[i];
let j = i - 1;
while (j >= 0 && currentVal < arr[j]) {
arr[j + 1] = arr[j];
j--;
}
arr[j + 1] = currentVal;
}
}