Forum Moderators: open
"use strict";
var rArray = [2,1,4,3];
document.writeln("randomArray: " + rArray + "<br />");
var sortedArray = sort(rArray);
document.writeln("sortedArray: " + sortedArray + "<br />");
function merge(arr1, arr2){
var combine= [];
vararr1Len= arr1.length;
vararr2Len= arr2.length;
varx = 0, y = 0, add = 0;
while(x < arr1Len && y < arr2Len){
while(arr1[x] < arr2[y]){
combine[add++]= arr1[x++];
}
while(arr2[y] <= arr1[x]){
combine[add++]= arr2[y++];
}
}
if(x < arr1Len)
combine.splice(add, 0, arr1.slice(x));
else
if(y < arr2Len)
combine.splice(add, 0, arr2.slice(y));
document.writeln("arr1 has: [" + arr1 + "]</br>");
document.writeln("arr2 has: [" + arr2 + "]</br>");
document.writeln("arr3 has: [" + combine + "]");
return combine;
}
function sort(array){
var result;
if (array.length <= 1) {
document.writeln("At 1: " + array + "<br />");
return array
} else {
// divide the array in half, sort them separately
// and then merge them back together
var mid = (array.length / 2);
var left = array.slice(0,mid);
var end = (array.length - mid);
var right = array.slice(mid);
sort(left);
sort(right);
result = merge(left, right);
document.writeln("Output results: " + result + "<br />");
}
return result
}
vararr1Len= arr1.length;
vararr2Len= arr2.length;
varx = 0, y = 0, add = 0;
var arr1Len= arr1.length;
var arr2Len= arr2.length;
var x = 0, y = 0, add = 0;
// left = [2,1]
sort(left); // return result of this would be [1,2]
// left still = [2,1]
// left = [2,1]
sort(left); // return result of this would be [1,2]
// left = [1,2]