It appears you have not yet registered with DEVPPL. To register please click here... (it's fast, easy and free!)

Forum

Log In Sponsors
Board index Programming JavaScript Forum

Sorting

Sorting

Postby JamesDE on Mon Jul 14, 2008 12:04 am

I am trying to write a recursive function that sorts an array. I keep getting a "too much recursion" error in Firefox.

JS code:

function newSort(arr)
{
if (arr.length == 1)
{
return arr;
}
else
{
var low = 0;
var high = arr.length - 1;
var mid = parseInt((low + high) / 2);
var left = new Array(mid);
var right = new Array(arr.length - mid);

for (var i = 0; i < mid; i++)
{
left[i] = arr[i];
}

var counter = 0;
for (var i = mid; i < arr.length; i++)
{
right[counter] = arr[i];
counter++;
}
newSort(left);
newSort(right);
var result = merge(left, right)
return result;
}

function merge(a1, a2)
{
var a3 = new Array();
var i = 0;

while (a1.length != 0 && a2.length != 0)
{
if (a1[0] < a2[0])
{
a3[i] = a1.shift();
}
else
{
a3[i] = a2.shift();
}
i++;
}

// Concatenate remaining elements
if (a1.length == 0)
{
a3 = a3.concat(a2);
}
else if (a2.length == 0)
{
a3 = a3.concat(a1);
}
return a3;
}
JamesDE
 
Posts: 2
Joined: Sun Jun 22, 2008 5:07 pm

Who is online

Users browsing this forum: No registered users and 7 guests