我正在为联合/查找结构实现快速联合算法。在执行at the "Algorithms in Java" book site时,普林斯顿实现在实现路径压缩时(在find()
方法中)未能保持树的大小不变。这不应该对算法产生不利影响吗?或者我错过了什么?另外,如果我是对的,我们将如何去修改大小数组?带路径压缩的加权快速联合 - 实现
3
A
回答
2
除非我弄错了,否则我认为这段代码确实保持了每棵树的根存储子树中节点数量的不变性。
创建数据结构时,请注意构造函数为林中的每个节点设置了sz[i] = 1
。这意味着值开始正确。
在union操作期间,数据结构正确调整合并树的根的大小。因此,任何工会操作之后,所有的树根有正确的尺寸。
虽然你是正确的路径在压缩过程中发现一步未更新的大小,没有理由认为该数据结构将改变这里的大小。路径压缩只是减少了某些树中的节点到树根的路径长度。它不会更改该树中存储的节点数量。因此,经历路径压缩的树的根部的大小信息不需要改变。虽然一些内部子树可能会失去一些孩子,因为他们重设父爬在树上高,这是无关紧要,因为工会/查找结构只需要在其树的根,以保持大小信息,而不是在内部节点。
总体而言,这意味着数据结构确实正确存储了大小信息。对运行时没有不利影响,也不需要纠正任何问题。
希望这会有所帮助!
相关问题
- 1. 具有路径压缩算法的加权快速联合
- 2. 工会找到分离集加权快速联合与路径压缩算法
- 3. 使用快速联合算法对路径进行压缩,java
- 4. 不带路径压缩的森林实现的不相交集合
- 5. 加权快速联盟
- 6. SevenZipSharp快速压缩
- 7. 快速Python的IPv6压缩
- 8. 快速压缩适合Mochiweb,HTTP压缩吗?
- 9. Asp.net路径压缩
- 10. Google在Java中的快速压缩实现
- 11. Java路径压缩
- 12. 我可以加快压缩速度吗?
- 13. 快速gzip压缩问题
- 14. 路径压缩,此代码如何进行路径压缩?
- 15. 在不相交的集合数据结构中实现路径压缩?
- 16. 带升压库的路径
- 17. 压敏,可绘制路径的实现
- 18. 加速点最快的路径
- 19. 为区分的联合类型实现快速的CustomEquality和CustomComparison
- 20. Webpack压缩路径名
- 21. 在python中实现无限循环寻找路径压缩
- 22. Android上的快速数据压缩
- 23. C#路径压缩问题
- 24. 解压缩文件 - 路径
- 25. 寻找快速无损压缩技术
- 26. Mongodb/Mongoose:如何在快速路径上正确实现findOneAndUpdate
- 27. 联合缩小和压缩CSS/JavaScript的
- 28. Android上的快速视频压缩
- 29. 3路快速排序(C实现)
- 30. Sqoop快速压缩不起作用