private double Median(double[] d, int nStart, int nEnd)
{
int nMid = nStart / 2 + nEnd / 2;
double dTemp;
if (d[nStart] > d[nEnd])
{
dTemp = d[nStart];
d[nStart] = d[nEnd];
d[nEnd] = dTemp;
}
if (d[nStart] > d[nMid])
{
dTemp = d[nStart];
d[nStart] = d[nMid];
d[nMid] = dTemp;
}
if (d[nMid] > d[nEnd])
{
dTemp = d[nMid];
d[nMid] = d[nEnd];
d[nEnd] = dTemp;
}
dTemp = d[nEnd - 1];
d[nEnd - 1] = d[nMid];
d[nMid] = dTemp;
return d[nEnd - 1];
}