嗯...
大根堆这个东西吧,可以看成是一个优先队列(priority_queue)...
为什么要用堆这个东西??
功能强大,可排序,并且能对更大值进行操作
但是比队列慢!!
注意 若A的功能大于B的功能,那么A的速度一定比B的速度慢
上代码!!!
1 #include2 #include 3 //堆引用库: 4 using namespace std; 5 6 priority_queue heap; 7 //堆英文名为heap,堆其实就是一种优先队列,这一语句是对堆的定义 8 9 int main()10 {11 heap.push(23);//进堆12 heap.push(32);13 heap.push(233);14 heap.size();//堆的大小15 heap.pop();//pop对最大值操作 16 heap.top();//top对最大值操作 17 return 0;18 }19 //此为大根堆
前面说过堆比队列要慢,下面来看一下堆中操作的复杂度:
push 复杂度 O(logn)
size 复杂度 O(1)pop 复杂度 O(logn)top 复杂度 O(1)
嗯...相信很多人还知道有小根堆(废话)
关于小根堆 以后博客中会更新的