arr[number-1] = tmp;
for (num=number-1; num>1; num--)
{
for (indexDown=0; (2*indexDown +1) < num; )
{
tmpIndex = 2*indexDown +1;
if (arr[tmpIndex] >= arr[tmpIndex+1])
{
if (arr[tmpIndex] > arr[indexDown])
{
tmp = arr[indexDown];
arr[indexDown] = arr[tmpIndex];
arr[tmpIndex] = tmp;
indexDown = tmpIndex;
}
else
{
break;
}
}
else
{
if ((arr[tmpIndex+1] > arr[indexDown]) && (tmpIndex+1 < num))
{
tmp = arr[indexDown];
arr[indexDown] = arr[tmpIndex+1];
arr[tmpIndex+1] = tmp;
indexDown = tmpIndex+1;
}
else
break;
}
}
}
tmp = arr[0];
arr[0] = arr[num-1];
arr[num-1] = tmp;
}
}
void ExamineArr(const int * const arr, DWORD number)
{
DWORD i=0, j=1;
if (number <2)
{
return;
}
for (; j
if (arr[i] > arr[j])
{
printf("第%u个数大于第%u个数!\n", i, j);
return;
}
}
}

摘自 kevinshq的专栏