function quicksort3(x,y,z)
{
    var L=new Array(32),R=new Array(32);
    var s, i, j, k, LL, rr, v, w,W, ii;
    s=0; L[0]=0; R[0]=x.length-1;

	if(x.length==2)
	{
		if(x[1]>=x[0])return;
		w=x[0];x[0]=x[1];x[1]=w;
		w=y[0];y[0]=y[1];y[1]=w;
		return;
	}

    do
    {
        LL = L[s]; rr = R[s];
        s--;
        do
        {
            i = LL; j = rr;
            v = x[Math.floor((LL + rr) / 2)];
            do
		{
                while(x[i]<v) i++;
                while(x[j]>v) j--;
                if (i <= j)
                {
                    w = x[i]; x[i] = x[j]; x[j] = w;
                    W = y[i]; y[i] = y[j]; y[j] = W;
                    W = z[i]; z[i] = z[j]; z[j] = W;
                    i++; j--;
                }
            } while (i <= j);
            if (j - LL >= rr - 1)
            {
                if (LL < j)
                {
                    s++;
                    L[s] = LL; R[s] = j;
                }
                LL = i;
            }
            else
            {
                if (i < rr)
                {
                    s++;
                    L[s] = i; R[s] = rr;
                }
                rr = j;
            }
        } while (LL < rr);
    } while (s >= 0);
}

function quicksort2(x,y)
{
    var L=new Array(32),R=new Array(32);
    var s, i, j, k, LL, rr, v, w, ii;
    s=0; L[0]=0; R[0]=x.length-1;

	if(x.length==2)
	{
		if(x[1]>=x[0])return;
		w=x[0];x[0]=x[1];x[1]=w;
		w=y[0];y[0]=y[1];y[1]=w;
		return;
	}

    do
    {
        LL = L[s]; rr = R[s];
        s--;
        do
        {
            i = LL; j = rr;
            v = x[Math.floor((LL + rr) / 2)];
            do
		{
                while(x[i]<v) i++;
                while(x[j]>v) j--;
                if (i <= j)
                {
                    w = x[i]; x[i] = x[j]; x[j] = w;
                    w = y[i]; y[i] = y[j]; y[j] = w;
                    i++; j--;
                }
            } while (i <= j);
            if (j - LL >= rr - 1)
            {
                if (LL < j)
                {
                    s++;
                    L[s] = LL; R[s] = j;
                }
                LL = i;
            }
            else
            {
                if (i < rr)
                {
                    s++;
                    L[s] = i; R[s] = rr;
                }
                rr = j;
            }
        } while (LL < rr);
    } while (s >= 0);
}


