您的位置:首页 > 其它

堆的STL库的应用

2016-01-14 19:10 190 查看
<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);"><span style="font-size:18px;">众所周知,堆是一个很重要的数据结构,在排序等应用中有着很重要的地位。在STL库中也收录了堆的头文件以及基础的函数。</span></span>


头文件:堆隶属于 #include <algorithm>

函数

建立堆
make_heap(a, a+n,Comp)
默认是建立最大堆的。对int类型,可以在第三个参数传入greater<int>()得到最小堆。
make_heap(a, a+n)默认建立成一个大顶堆
在堆中添加数据
push_heap (a, a+n)
要先在容器中加入数据,再调用push_heap ()

在堆中删除数据
pop_heap(a, a+n)
要先调用pop_heap()再在容器中删除数据

堆排序
sort_heap(a, a+n)
排序之后就不再是一个合法的heap了
添加删除操作,由于容器还未学习,请转读/article/1392199.html的文章
在这里我只介绍它在普通数组中的用法

#include<stdio.h>
#include<algorithm>

using namespace std;

int main()
{
int a[10],b[10];
int i,n;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
b[i]=a[i];
}

make_heap(a,a+n);//默认建立小顶堆
sort_heap(a,a+n);//堆排序

for(i=0;i<n;i++)
{
printf("%d ",a[i]);
}
putchar('\n');
return 0;
<span style="background-color: rgb(255, 255, 255);">}</span>
<span style="background-color: rgb(255, 255, 255);">
</span>
<span style="background-color: rgb(255, 255, 255);">以后会有所补充,本博客借鉴</span><span style="color: rgb(255, 255, 255); background-color: rgb(255, 255, 255);">的博文</span>



MoreWindows Blog

的博文
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: