堆排序
- 堆:是一颗完全二叉树
- 小根堆:父节点的值 <= 子节点的值
- 大根堆:父节点的值 >= 子节点的值
对节点使用左右孩子编号发

- 节点i的左孩子是2i
- 节点i的右孩子是2i+1
- 节点i的父节点是i/2
堆(完全二叉树)可以用一维数组存储
堆的插入
[!note]把新元素从队尾插入,再逐层上浮到何时位置


int a[N],cnt; |
堆的删除
[!note] 把尾元素移动到根上,再逐层下沉到合适位置
例如:删除根元素


void down(int u) |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 haromeng's blog !!


