标签:
最大堆:make_heap(vi.begin(),vi.end())
#include <iostream> #include <vector> #include <algorithm> using namespace std; int main() { int ia[9] = {0, 1, 2, 3, 4, 8, 9, 3, 5}; make_heap(ia, ia + 9); for(int i = 0; i < 9; i++) { cout << ia[i] << " "; } cout << endl; make_heap(ia, ia + 9); pop_heap(ia, ia + 9); cout << ia[8] << endl; }
最小堆:sort_heap(vi,vi+n)
#include <iostream> #include <vector> #include <algorithm> using namespace std; int main() { int ia[9] = {0, 1, 2, 3, 4, 8, 9, 3, 5}; sort_heap(ia, ia + 9); for(int i = 0; i < 9; i++) { cout << ia[i] << " "; } cout << endl; make_heap(ia, ia + 9); pop_heap(ia, ia + 9); cout << ia[8] << endl; }
Max-heap 取走根节点后完全二叉树的排序:
#include <iostream> #include <vector> #include <algorithm> using namespace std; int main() { int ia[9] = {0, 1, 2, 3, 4, 8, 9, 3, 5}; vector<int>vi(ia, ia + 9); make_heap(vi.begin(), vi.end()); for(int i = 0; i < vi.size(); i++) { cout << vi[i] << " "; } cout << endl; pop_heap(vi.begin(), vi.end()); for(int i = 0; i < vi.size(); ++i) { /* code */ cout << vi[i] << " "; } cout << endl; for(int i = 0; i < vi.size(); ++i) { /* code */ cout << vi[i] << " "; } cout << endl; return 0; }
Max-heap && Min-heap && push_heap
标签:
原文地址:http://www.cnblogs.com/chenyang920/p/5134354.html