merge
recursive merge, so much better than the for loop version.
by jpsierens
JavaScript
// O(n)
// note that input arrays are presorted
const merge = (a, b) => {
if (!a.length) return b;
if (!b.length) return a;
if (a[0] < b[0]) {
return [a[0], ...merge(a.slice(1, a.length), b)];
}
else {
return [b[0], ...merge(a, b.slice(1, b.length))];
}
}
console.log(merge([1,3,5], [2,4,6])); // [1,2,3,4,5,6]