//大根堆
void HeapAdjust(int H[],int s, int m)
{
int rc = H[s];
for(int i=2*s;i<m;i*=2)
{
if (H[i]>H[i+1])
i++;
if(H[s]<H[i])
{
H[s] = H[i];
s = i;
}
else break;
}
H[s] = rc;
}
void HeapSort(int H[],int length)
{
for (int i = length/2;i>0;i++)
{
HeapAdjust(H,i,length);
}
for(int j = length; j>1;j--)
{
H[1] = H[j];
HeapAdjust(H,1,j-1);
}
}堆排序
最新推荐文章于 2024-06-09 16:03:45 发布
本文深入解析了堆排序算法的工作原理,包括大根堆的构建和调整过程,详细演示了堆排序的具体实现步骤。
31万+

被折叠的 条评论
为什么被折叠?



