cb52a_c++_STL_堆排序算法make_push_pop_sort_heap
2024-10-09 08:05:46
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 ;
}
最新文章
- 修改phpMyAdmin中的默认1440超时时间
- miniproject black jack--Fail
- CentOS 7.0 安装go 1.3.1
- sublime mac快捷键
- 使用 .gitignore来忽略某些文件【转】
- 配置SQL Server 2008 R2 Reporting Services
- 转: seajs手册与文档之--模块定义
- InputStream中read()与read(byte[] b)
- bzoj 3669: [Noi2014] 魔法森林 LCT版
- jquery easyui panel title文字格式设置
- C#文件和字节流的转换方法
- Apache Maven 3.6.1配置安装
- zeros()和ones()和eye()
- 【Luogu4396】[AHOI2013]作业(莫队)
- 端口转发工具lcx使用两类
- sass的加减乘除
- FFT/NTT/MTT学习笔记
- CentOS 7如何开放其它的端口,比如8080
- 【刷题】清橙 A1295 necklace
- zigbee组播通信原理
热门文章
- PHP数组简单操作
- 在Cent OS云服务器上部署基于TP5后端代码踩坑记录_艾孜尔江撰
- Maven快速入门(二)手动创建maven项目hellomaven
- QueryRunner的添加与查询操作
- 2017-ICLR-NAS_with_RL-Neural Architecture Search with Reinforcement Learning-论文阅读
- 通过jquery实现tab切换
- Kubernetes笔记(四):详解Namespace与资源限制ResourceQuota,LimitRange
- Java实现蓝桥杯模拟带九9的数的个数
- Java实现 蓝桥杯 算法训练 纪念品分组
- Java实现 LeetCode 25 K个一组翻转链表