利用优先队列 priority_queue 实现堆排序
【知识点】 priority_queue 中文意思为“优先队列”,本质上是一个堆。 这使得程序员在编码过程中,可以直接利用 priority_queue 构建堆,从而避免了手动构建堆的繁琐。 priority_queue 常用的基本操作与队列相同。如: top(),访问队头元素 empty(),判断队列是否为空 size(),返回队列元素个数 push(),插入元素到队尾并排序。大根堆递减排序,小根堆递增排序。 pop(),弹出队头元素 【算法代码】
#include<bits/stdc++.h> using namespace std; priority_queue<int> G; //Large Root Heap priority_queue<int,vector<int>,greater<int> > L; //Small Root Heap int main() { int x; while(cin>>x) { G.push(x); L.push(x); } while (!G.empty()) { //Large root heap, decreasing output cout<<G.top()<<" "; G.pop(); } cout<<endl; while(!L.empty()) { //Small root heap, increasing output cout<<L.top()<<" "; L.pop(); } cout<<endl; return 0; } /* in: 20 40 32 67 40 20 89 300 400 15 out: 400 300 89 67 40 40 32 20 20 15 15 20 20 32 40 40 67 89 300 400 */
【参考文献】 https://blog..net/hnjzsyjyj/article/details/119813641 https://blog..net/hnjzsyjyj/article/details/108929993
上一篇:
微信小程序ssm电影院售票系统app
下一篇:
射频(RF)一些参数小记