计蒜客课程竞赛入门--堆排序 流程记
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了计蒜客课程竞赛入门--堆排序 流程记相关的知识,希望对你有一定的参考价值。
堆实际上是一颗二叉树,对于大根堆来说,它的特点就是父节点的值大于所有子节点的值。 C++的STL中priority_queue已经帮我们实现好了堆的数据结构,接下来我们一起学习并实践如何实现一个堆并用堆进行排序。
priority_queue是STL的queue这个头文件中定义的数据结构,因此需要额外引用它,即#include <queue>。
1 #include <iostream> 2 #include <cstdio> 3 #include <queue> 4 using namespace std; 5 priority_queue<int>myHeap; 6 int main() { 7 int n = 5, num[5] = {1, 3, 2, 5, 4}; 8 // 在下面的循环内读入元素并插入堆 9 for (int i = 0; i < n; ++i) { 10 myHeap.push(num[i]); 11 } 12 // 在下面的循环内从大到小输出元素并将元素依次从堆顶弹出 13 for (int i = 0; i < n; ++i) { 14 printf("%d\n",myHeap.top()); 15 myHeap.pop(); 16 } 17 return 0; 18 }
以上是关于计蒜客课程竞赛入门--堆排序 流程记的主要内容,如果未能解决你的问题,请参考以下文章