heap - 关系多变的堆
问题描述
一种非常常见且非常常用的数据结构是Heap
. 这种数据结构的特点是施加在其节点上的关系:如果<
是一个关系并且node
是一个节点,那么node < node.child
对于node
.
但是当你需要改变关系时会发生什么?
蛮力方法是简单地从 中提取所有元素Heap
并将它们添加到Heap
具有所需关系的另一个中:通常这需要O(n log(n))
时间。它是否存在Heap
允许以更快的方式改变其关系,可能使用就地算法?
解决方案
推荐阅读
- ios - 不变违规:组件`RTCVideoView`的视图配置getter回调必须是一个函数(收到`undefined`)
- bash - Launch Job 无法执行 bash 脚本,接收异常代码 126
- c++ - 使用重载的 const 函数和使用 -pedantic 编译的奇怪编译失败
- extjs - 搜索值不会加载带有搜索数据的视图 [Shopware 5]
- python - Python 的 SoundFile:soundfile.write 和剪辑
- php - 如何在不使用 php 内置函数的情况下从数组中删除元素?
- string - 如果包含子字符串,则使用替换更改整个字符串
- java - 为什么 Spring Boot 依赖注入在 main 方法中不起作用?
- assembly - 汇编语言程序以二进制数计算 1 的个数
- java - 无法在 Spring Boot 单元测试中加载项目环境变量