void littleHeapfy(double *pdData, long lIdx, long lLen)
{
long lLeft = 0, lRight = 0, lSwap = 0;
double dTmp = 0.0;
lLeft = lIdx;
lRight = lIdx;
if (2 * lIdx <= lLen)
{
lLeft = 2 * lIdx;
}
if (2 * lIdx + 1 <= lLen)
{
lRight = 2 * lIdx + 1;
}
lSwap = lRight;
if (pdData[lRight] > pdData[lLeft])
{
lSwap = lLeft;
}
if (pdData[lSwap] < pdData[lIdx])
{
dTmp = pdData[lIdx];
pdData[lIdx] = pdData[lSwap];
pdData[lSwap] = dTmp;
littleHeapfy(pdData, lSwap, lLen);
}
return;
}
void buildLittleHeap(double *pdData, long lLen)
{
long i = 0;
for (i = lLen / 2 + 1; i >= 1; i--)
{
littleHeapfy(pdData, i, lLen);
}
return;
}
void bi