Skip to content

Instantly share code, notes, and snippets.

@xypaul
Last active August 29, 2015 14:22
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save xypaul/f7d7942bfa6f376e1a8f to your computer and use it in GitHub Desktop.
Save xypaul/f7d7942bfa6f376e1a8f to your computer and use it in GitHub Desktop.
Merge Sort JavaScript
function sort(array) {
var len = array.length;
var middle = Math.floor(len*0.5);
var left = array.slice(0,middle);
var right = array.slice(middle, len);
if (len == 1) {
return array;
} else {
}
return merge(sort(left), sort(right));
}
function merge(left, right) {
var a = left.length;
var b = right.length;
if (a > 0 && b > 0) {
if (left[0] > right[0]) {
return [].concat(left[0], merge(left.slice(1,a), right));
} else {
return [].concat(right[0], merge(right.slice(1,b), left));
}
} else if (a == 0) {
return right;
} else of (b == 0)
return left;
}
var array = [];
for(var i = 0; i < 20; i++) {
array.push(Math.round(Math.random() * 100));
}
console.log(array);
console.log(sort(array));
@xypaul
Copy link
Author

xypaul commented May 28, 2015

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment