Skip to content

Instantly share code, notes, and snippets.

@goatslacker
Created October 7, 2011 22:17
Show Gist options
  • Save goatslacker/1271471 to your computer and use it in GitHub Desktop.
Save goatslacker/1271471 to your computer and use it in GitHub Desktop.
var a = [
34, 203, 3, 746, 200, 984, 198, 764, 9, 4, 17, 200, 242, 23, 12, 2, 98,
49, 32, 64, 23, 45, 95, 75, 34, 507, 123, 454, 76, 34, 12, 5, 23, 55, 11,
95, 45, 33, 63, 66, 234, 76, 76, 45, 44, 77, 22, 12, 90, 9001, 34, 23, 1
];
var merge_sort = (function () {
var merge = function (left, right) {
var result = [];
while (left.length && right.length) {
if (left[0] <= right[0]) {
result.push(left.shift());
} else {
result.push(right.shift());
}
}
while (left.length) {
result.push(left.shift());
}
while (right.length) {
result.push(right.shift());
}
return result;
};
var merge_sort = function (arr) {
if (arr.length < 2) {
return arr;
}
var middle = parseInt(arr.length / 2);
var left = arr.slice(0, middle);
var right = arr.slice(middle, arr.length);
return merge(merge_sort(left), merge_sort(right));
};
return merge_sort;
}());
console.log(merge_sort(a));
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment