cb52a_c++_STL_堆排序算法make_push_pop_sort_heap
heapsort堆排序算法
make_heap()-特殊的二叉树,每一个节点都比根小,根就是最大的数。大根堆,也可以做成 小根堆
寻找最大数,最大数排在最前面。或者寻找最小数,最小数排在最前面
push_heap()
pop_heap()
sort_heap()

把vector做成像一个堆

/*cb52a_c++_STL_堆排序算法make_push_pop_sort_heap
heapsort堆排序算法
make_heap()-特殊的二叉树,每一个节点都比根小,根就是最大的数。大根堆,也可以做成 小根堆
寻找最大数,最大数排在最前面。或者寻找最小数,最小数排在最前面
push_heap()
pop_heap()
sort_heap() 把vector做成像一个堆
*/ #include <iostream>
#include <algorithm>
#include <vector> template <class TT2>
void print2(TT2 &ivec)
{
for (TT2::iterator iter = ivec.begin(); iter != ivec.end(); ++iter)
cout << *iter << ' ';
cout << endl;
} using namespace std; int main()
{
vector<int> ivec;
for (int i = ; i <= ; ++i)
ivec.push_back(i);
for (int i = ; i <= ; ++i)
ivec.push_back(i);
for (int i = ; i <= ; ++i)
ivec.push_back(i); cout << "原始数据:" << endl;
print2(ivec);
cout << "把ivec数据做成一个堆:" << endl;
make_heap(ivec.begin(),ivec.end());
print2(ivec); cout << "取出一个最大的数据" << endl;
pop_heap(ivec.begin(),ivec.end());//把最大的放到最后一个位置。
print2(ivec);
cout << "删除最后一个数" << endl;
ivec.pop_back();
print2(ivec); ivec.push_back();
push_heap(ivec.begin(),ivec.end());//把17加入到堆 cout << "堆排序,变成普通的排序" << endl;
sort_heap(ivec.begin(),ivec.end());
print2(ivec); return ;
}

最新文章

  1. 修改phpMyAdmin中的默认1440超时时间
  2. miniproject black jack--Fail
  3. CentOS 7.0 安装go 1.3.1
  4. sublime mac快捷键
  5. 使用 .gitignore来忽略某些文件【转】
  6. 配置SQL Server 2008 R2 Reporting Services
  7. 转: seajs手册与文档之--模块定义
  8. InputStream中read()与read(byte[] b)
  9. bzoj 3669: [Noi2014] 魔法森林 LCT版
  10. jquery easyui panel title文字格式设置
  11. C#文件和字节流的转换方法
  12. Apache Maven 3.6.1配置安装
  13. zeros()和ones()和eye()
  14. 【Luogu4396】[AHOI2013]作业(莫队)
  15. 端口转发工具lcx使用两类
  16. sass的加减乘除
  17. FFT/NTT/MTT学习笔记
  18. CentOS 7如何开放其它的端口,比如8080
  19. 【刷题】清橙 A1295 necklace
  20. zigbee组播通信原理

热门文章

  1. PHP数组简单操作
  2. 在Cent OS云服务器上部署基于TP5后端代码踩坑记录_艾孜尔江撰
  3. Maven快速入门(二)手动创建maven项目hellomaven
  4. QueryRunner的添加与查询操作
  5. 2017-ICLR-NAS_with_RL-Neural Architecture Search with Reinforcement Learning-论文阅读
  6. 通过jquery实现tab切换
  7. Kubernetes笔记(四):详解Namespace与资源限制ResourceQuota,LimitRange
  8. Java实现蓝桥杯模拟带九9的数的个数
  9. Java实现 蓝桥杯 算法训练 纪念品分组
  10. Java实现 LeetCode 25 K个一组翻转链表