1.0 KiB
1.0 KiB
title, tags, expertise, author, cover, firstSeen, lastUpdated
| title | tags | expertise | author | cover | firstSeen | lastUpdated |
|---|---|---|---|---|---|---|
| Insertion sort | algorithm,array | intermediate | chalarangelo | blog_images/goat-wooden-cottage.jpg | 2020-12-28T21:53:53+02:00 | 2020-12-28T21:53:53+02:00 |
Sorts an array of numbers, using the insertion sort algorithm.
- Use
Array.prototype.reduce()to iterate over all the elements in the given array. - If the
lengthof the accumulator is0, add the current element to it. - Use
Array.prototype.some()to iterate over the results in the accumulator until the correct position is found. - Use
Array.prototype.splice()to insert the current element into the accumulator.
const insertionSort = arr =>
arr.reduce((acc, x) => {
if (!acc.length) return [x];
acc.some((y, j) => {
if (x <= y) {
acc.splice(j, 0, x);
return true;
}
if (x > y && j === acc.length - 1) {
acc.splice(j + 1, 0, x);
return true;
}
return false;
});
return acc;
}, []);
insertionSort([6, 3, 4, 1]); // [1, 3, 4, 6]