今天我们来讲一个速度较快的排序算法:堆排序。
要学堆排序,首先要会优先队列。优先队列我就不打了,你们自己看以下内容
C++优先队列:priority_queue:小天狼星_布莱克的博客
既然是队列那么先要包含头文件#include <queue>, 它和queue不同的就在于我们可以自定义其中数据的优先级, 让优先级高的排在队列前面,优先出队
优先队列具有队列的所有特性,包括基本操作,只是在这基础上添加了内部的一个排序,它本质是一个堆实现的。
和队列基本操作相同,有如下几种:
top 访问队头元素
empty 队列是否为空
size 返回队列内元素个数
push 插入元素到队尾 (并排序)
emplace 原地构造一个元素并插入队列
pop 弹出队头元素
swap 交换内容
定义:prio