-
Notifications
You must be signed in to change notification settings - Fork 4
JavaScript Insertion Sort Algorithm
Ramesh Fadatare edited this page Jul 11, 2019
·
1 revision
const insertionSort = (array, compareFn = defaultCompare) => {
const { length } = array;
let temp;
for (let i = 1; i < length; i++) {
let j = i;
temp = array[i];
// console.log('to be inserted ' + temp);
while (j > 0 && compareFn(array[j - 1], temp) === Compare.BIGGER_THAN) {
// console.log('shift ' + array[j - 1]);
array[j] = array[j - 1];
j--;
}
// console.log('insert ' + temp);
array[j] = temp;
}
return array;
};
const Compare = {
LESS_THAN: -1,
BIGGER_THAN: 1,
EQUALS: 0
};
function defaultCompare(a, b) {
if (a === b) {
return Compare.EQUALS;
}
return a < b ? Compare.LESS_THAN : Compare.BIGGER_THAN;
}
let array = [2,1,5,4,3,8,7,6];
array = insertionSort(array);
console.log(array);
Output:
[1, 2, 3, 4, 5, 6, 7, 8]