Merge Sort Simple
by rishul matta
JavaScript
var MergeSort = (function() {
function sort(arr) {
var left, right, length, low, mid, high;
if (arr.length == 1) {
return arr;
}
high = arr.length;
mid = Math.floor(high/2);
low = 0
left = arr.slice(low, mid);
right = arr.slice(mid, high);
return mergeArr(sort(left), sort(right));
}
function mergeArr(left, right) {
debugger;
var result = [];
while(left.length || right.length) {
if (left.length && right.length) {
right[0] > left[0] ? result.push(left.shift()): result.push(right.shift())
} else
if (left.length) {
result = result.concat(left);
left = [];
} else {
result = result.concat(right);
right = [];
}
}
return result;
}
return sort;
})()
MergeSort([4,2,6,8,1,3,5])