Merge Sort
by Trever Shick
HTML
<script src="https://rawgit.com/trevershick/6d9364085a1e566b2e18/raw/console.js"></script>
JavaScript
// merge sort
var unsorted = [0,9,3,5,6,7,4,2,1,5,7,0];
function sort(unsorted) {
if (unsorted.length <= 1) {
return unsorted;
}
var merge = function (l,r) {
if (l.length == 0) { return r; }
if (r.length == 0) { return l; }
return (l[0] <= r[0])
? [l[0]].concat(merge(l.slice(1), r))
: [r[0]].concat(merge(l, r.slice(1)));
};
return merge(
sort(unsorted.slice(0, unsorted.length / 2)),
sort(unsorted.slice(unsorted.length / 2)));
}
console.log(sort(unsorted));
console.log(sort([3]));