作用:
插入元素,O(lgN)
修改元素,O(lgN)
删除元素,O(lgN)
查询元素,O(1)
动态查询最值,O(NlgN)-O(lgN)-O(1)
核心操作:
上浮与下沉
最小堆:上浮是指较小值上浮,下沉是指较大值下沉。
最大堆:上浮是指较大值上浮,下沉是指较小值下沉。
具体操作:
- 预处理中,对所有的根节点下沉操作,即交换根节点与一个较小的子节点,然后接着将子节点作为根节点,进行下一次下沉操作。
- 插入元素时,将它放入最底层,并不断地上浮。
- 删除堆顶元素时,将堆顶元素与最后一个元素交换,然后下沉。
- 修改元素时,首先查询元素的地址,随后修改值,接着上浮下沉各一次以保持堆的性质。
- 删除元素时,先修改为负无穷大,然后上浮到堆顶,删除堆顶。
时间: 2024-11-09 18:45:33