记录:
#include<iostream>
#include<vector>
using namespace std;
void HAdjust(vector<int> &vec,int i,int n)
{
int iL,iR,j;
while(i<=n/2-1&&i>=0)
{
iL=2*i+1;
iR=iL+1;
j=iL;
if(iR<n&&vec[iR]<vec[iL]) j=iR;
if(vec[i]>vec[j]) swap(vec[i],vec[j]);
i--;
}
}
int main()
{
int k=10;
vector<int> vec(k,0);
int temp;
while(cin>>temp)
{
if(temp<vec[0])
continue;
else
{
vec[0]=temp;
HAdjust(vec,4,10);
}
for(int i=0;i<10;i++)
cout<<vec[i]<<" ";
cout<<endl;
}
return 0;
}
本文介绍了一个堆调整算法的具体实现过程,该算法通过一系列的比较和交换操作来维护堆的性质。主要内容包括使用C++实现的堆调整函数HAdjust,该函数接收一个整数向量、一个起始索引及向量的大小作为参数,并通过循环结构和条件判断来完成堆的调整。此外,还提供了一个演示如何利用此函数进行堆操作的main函数。
1264

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



