设为首页 加入收藏

TOP

关于c++实现最大堆维护maxHeapify的方法
2017-12-29 06:06:31 】 浏览:39
Tags:关于 实现 最大 维护 maxHeapify 方法

来源于算法导论第三版

参考伪代码

\

c++代码

#include 
  
   
using namespace std;
//交换两数大小
void exchange(int &a,int &b)
{
    int temp;
    temp=a;
    a=b;
    b=temp;
}
//左孩子,右孩子
int left(int i)
{
    return i*2;
}
int right(int i)
{
    return i*2+1;
}
//维护最大堆的函数
void maxHeapify(int array[],int size,int i)
{
    int l=left(i),r=right(i);
    int largest=i;
    if(l<=size&&array[l]>array[largest])
        largest=l;
    if(r<=size&&array[r]>array[largest])
        largest=r;
    if(largest!=i)
    {
         exchange(array[i],array[largest]);
         maxHeapify(array,size,largest);
    }
}

int main()
{
    int Array[10]={16,4,10,14,7,9,3,2,8,1};
    cout<<"原始堆为"<
   
    

运行结果

\


编程开发网
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Google C++编程规范讲解 下一篇c++循环语句实例

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

最新文章

热门文章

C 语言

C++基础

windows编程基础

linux编程基础

C/C++面试题目