make_heap(),push_heap(),pop_heap(),sort_heap()用法。
#include <iostream>
#include <algorithm>
using namespace std; //一般而言设计的时候都是从零开始的。
bool compare(int a,int b)
{
return a>b; //这里之后的时候在看一下吧。堆是相反的。
}
int main()
{
int n;
cout<<"请输入数组的个数"<<endl;
cin>>n; //从八开始。
int arr[20],arr1[20];
cout<<"请输入元素的值"<<endl;
for(int i=0;i<n;i++)
{
cin>>arr[i];
arr1[i]=arr[i];
}
make_heap(arr,arr+n); //默认是大根对;先是最大堆。 大根堆是实现了。
cout<<"大根堆是:"<<endl;
for(int i=0;i<n;i++)
cout<<arr[i]<<" ";
cout<<endl;
cout<<"请输入要添加的元素。"<<endl;
cin>>arr[n];
push_heap(arr,arr+n+1); //默认是大根堆。
cout<<"添加了一个元素之后是:"<<endl; //因为这几个函数的时间复杂度是不同的,所以一定要选择恰当的函数。
for(int i=0;i<=n;i++)
cout<<arr[i]<<" ";
cout<<endl;
pop_heap(arr,arr+n+1);
cout<<"第一个元素和最后一个元素进行交换之后是:"<<endl;
for(int i=0;i<=n;i++)
cout<<arr[i]<<" ";
cout<<endl;
make_heap(arr,arr+n+1);
sort_heap( arr,arr+n+1 );
cout<<"排序之后是:"<<endl;
for(int i=0;i<=n;i++)
cout<<arr[i]<<" ";
cout<<endl;
make_heap(arr1,arr1+n,compare); //小根堆。
cout<<"小根堆是:"<<endl;
for(int i=0;i<n;i++)
cout<<arr1[i]<<endl; //定要默认已经是堆了,并且还要进行对应起来。
cout<<"请输入要添加的值:"<<endl;
cin>>arr1[n];
cout<<"添加了一个元素之后是:"<<endl;
push_heap(arr1,arr1+n+1,compare); //定要表示类别的。
for(int i=0;i<=n;i++)
cout<<arr1[i]<<" ";
cout<<endl;
return 0;
}
make_heap(),push_heap(),pop_heap(),sort_heap()用法。相关推荐
- C++ 最大堆最小堆与push_heap pop_heap
make_heap:根据不同参数生成大顶堆或者小顶堆,默认大顶堆. make_heap(_RAIter,_RAIter) 默认生成大顶堆 make_heap(_RAIter,_RAIter,_Comp ...
- POJ 3784.Running Median
2015-07-16 问题简述: 动态求取中位数的问题,输入一串数字,每输入第奇数个数时求取这些数的中位数. 原题链接:http://poj.org/problem?id=3784 解题思路: 求取中 ...
- 最全ACM常用STL
STL 中专门用于排列的函数(可以处理存在重复数据集的排列问题) 头文件:#include <algorithm> using namespace std; 调用: next_permut ...
- 第四章 序列式容器(sequence containers)
序列式容器(sequence containers) 1.容器的概观与分类 2.vector 3.list 4.deque 5.stack 6.queue 7.heap(隐私表述,implicit r ...
- C ++ 编程思想(卷二) 笔记
2013年8月16日夜02:53 第一章 1.异常处理是C++的主要特征之一 2.assert():用于开发阶段调试,#define NDEBUG 使得assert()失效. 3.C语言中错误处理信息 ...
- 八股面经总结-C++
目录 [C++基础]关键字与运算符 指针与引用 define 和 typedef 的区别 define 和 inline 的区别 override 和 overload new 和 malloc co ...
- 【C++ 泛型编程 入门篇】 C++ 中的泛型算法 STL(sort,find)
C++ 泛型编程 中的泛型算法和STL(sort,find,find) 1. 引言 1.1 简述泛型编程和STL的重要性 1.2 介绍泛型算法的基本概念 2. STL中的泛型算法 2.1 定义及主要特 ...
- C++ priority_queue 的使用和源码详解
目录 简介 priority_queue 的使用 泛型算法make_heap().push_heap().pop_heap() make_heap() push_heap() pop_heap() 简 ...
- 【STL学习】优先级队列Priority Queue详解与C++编程实现
优先级队列Priority Queue介绍 优先级队列是一个拥有权值观念的queue.它允许在底端添加元素.在顶端去除元素.删除元素. 优先级队列内部的元素并不是按照添加的顺序排列,而是自动依照元素的 ...
最新文章
- 机器学习与高维信息检索 - Note 4 - 主成分分析及其现代解释(Principal Component Analysis, PCA)及相关实例
- 美智库最新报告:小数据人工智能潜力不可估量
- ad策略下发_组策略--下发文件到计算机
- 蚁群算法,PSO算法以及两种算法可以融合的几种方法
- CentOS下Apache环境支持GBK编码解决网页乱码问题
- JSP听课笔记(一)
- (qsf文件 、 tcl文件 和 csv(txt)文件的区别) FPGA管脚分配文件保存、导入导出方法...
- ARP协议讲解、ARP攻击(网络执法官)、ARP中间人(Cain)、ARP攻击防御
- 青山~深入理解mysql
- python-合并两个列表并去重
- 免费售后——公司办公电脑配置单2500到4500档(包含显示器)
- 计算机网络(重点简单概括)
- 微软开放跨平台联机 索尼:我们早就这么做了
- 年后第一天上班就提辞职是不是“不厚道”???
- 易语言lsp劫持_[原创]不用导出任何函数的DLL劫持注入,完美!
- PHP简单实现“相关文章推荐”功能的方法
- Window xp与Win7对比
- 经典推荐算法之协同过滤
- 精英课堂 — 国内第一个MOOC培训学堂上线啦~~
- ERP系统窃取产品数据怎么办?