天道酬勤,学无止境

priority_queue

数据结构&堆&heap&priority_queue&实现

[toc]#什么是堆? 堆是一种数据结构,可以用来实现优先队列 ##大根堆 大根堆,顾名思义就是根节点最大。我们先用小根堆的建堆过程学习堆的思想。 ##小根堆 下图为小根堆建堆过程 ##堆的操作上浮下沉插入弹出取顶堆排序STL heap所在库 #include<algorithm>#include<cstdio> #include<iostream> #include<algorithm> #include<vector> using namespace std; bool cmp(int x,int y) { return x>y; } int main() { vector<int> a; int num,n=10; for(int i=0;i<n;i++) { num = rand()%(233*2); a.push_back(num); } for(vector<int>::iterator i=a.begin();i!=a.end();i++) { cout<<*i<<ends; }cout<<endl<<endl; make_heap(a.begin(),a.end());//默认的大根堆 for(vector<int>::iterator i=a.begin();i!=a.end();i++) { cout<<*i<<ends; }cout<<endl<<endl

2021-04-19 14:25:22    分类:博客    priority_queue