堆的性质:
1.堆的左节点比父节点小,右节点比父节点大;
2.堆是平衡二叉树
建堆:
#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
int main()
{
vector<int> S = { 0, 1, 2, 3, 4, 5, 6 };
make_heap(S.begin(), S.end());
for (vector<int>::iterator it = S.begin(); it != S.end(); it++) { //大根堆
cout << *it << " ";
}
cout << endl;
make_heap(S.begin(), S.end(), greater<int>());
for (vector<int>::iterator it = S.begin(); it != S.end(); it++) { //小根堆
cout << *it << " ";
}
}