Skip to content

Instantly share code, notes, and snippets.

@ilovejs
Forked from youxiachai/megesort.js
Created June 2, 2014 07:29
Show Gist options
  • Save ilovejs/0a83585ffa378ad00e44 to your computer and use it in GitHub Desktop.
Save ilovejs/0a83585ffa378ad00e44 to your computer and use it in GitHub Desktop.
Array.prototype.mergeSort=function(){
var merge=function(left,right){
var final=[];
while (left.length && right.length) {
final.push(left[0] <= right[0] ? left.shift() : right.shift() );
}
return final.concat(left.concat(right));
}
// 递归结束
if (this.length < 2) {
return this;
}
var leftArray=this.slice(0,parseInt(this.length/2));
var rightArray=this.slice(parseInt(this.length/2));
return merge(leftArray.mergeSort(),rightArray.mergeSort());
}
a=[234,55,667,778,234,664,2245,10239, 4321] ;
console.log(a.mergeSort())
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment