简短的问题:
有没有办法实现一个 高效 decreaseKey 的方法 SplMinHeap (或任何spl堆)没有 失去绩效奖金?
背景:
对于私有项目,我正在使用实现A*类,并希望通过使用其中一个spl堆结构来提高性能。但我无法理解如何使用它们,因为它们都缺少decreaseKey
或contains
方法。也许我完全错过了什么?
非常感谢!
答案 0 :(得分:0)
要实施decreaseKey
方法,我们需要:
除非我们需要具有最小密钥的条目,否则我们根本不知道条目的存储位置。此外,即使我们在可接受的时间内找到所请求的条目,我们也无法更新其密钥,关于SplMinHeap的方法。
因此,我没有看到使用SplMinHeap数据结构实现decreaseKey
方法的有效方法。也许您应该通过YourArrayList实现YourHmpleteBreeTree实现YourHeap,例如。