int Swap(int &a,int &b)
{
int temp=a;
a=b;
b=temp;
}
void Heap_build(int a[],int root,int length)
{
int lchild=root*2+1;
if(lchild<length)
{
int flag=lchild;
int rchild=lchild+1;
if(rchild<length)
{
if(a[rchild]>a[flag])
{
flag=rchild;
}
}
if(a[root]<a[flag])
{
Swap(a[root],a[flag]);
Heap_build(a,flag,length);
}
}
}
void Heap_sort(int a[],int len)
{
for(int i=len/2-1,i>=0;i--)//从最后一个非叶子节点的父节点开始建堆
{
Heap_build(a,i,len);
}
for(int j=len-1;j>0;j--)
{
Swap(a[0],a[j]);
Heap_build(a,0,j);
}
}
CPP 实现堆排序
最新推荐文章于 2025-08-28 09:13:11 发布
该博客主要围绕CPP实现堆排序展开,涉及使用C++语言来完成堆排序算法的相关内容,属于信息技术领域中算法实现的范畴。
1934

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



