我正在忙着建立一些路径寻找。 我目前使用Dictionary来保存要评估的所有点,然后在不再需要它们时将其删除。这非常快,因为我可以在添加和删除时直接解决一个问题并获得O(1)性能。
然而,在某一点上,我需要评估所有开放点,并根据每个点对象内的值找到最佳开放点。所以我们通过这个字典做一个foreach循环,并且需要评估每个字典直到最后。 O(n)表现如果我是正确的?
所以我目前正在寻找中途。我希望能够使用O(1)获取任何节点,但我希望能够更有效地获取我想要的点对象。在这种情况下,我总是想要找到的最低值,所以我可以对此进行排序。但是,我找不到一个可以直接获取键值的集合,同时根据我的值对它们进行排序。 (我会在添加一个新的时候对它们进行排序。理想情况下,只需遍历列表并将其添加到其他应该基于该魔术值的位置之间)
有没有人知道最好的收藏会是什么,或者我最好写一些我可以自定义操作的链表?如同,每个点对象都保存对下一个点对象的引用,因此我可以通过改变链中的1个引用来在它们之间添加一个。我也可以找到最好的评估,因为它始终是链中的第一个。
任何建议都将不胜感激, 笑脸