【问题标题】:Calculate best collection to use in method计算方法中使用的最佳集合
【发布时间】:2015-06-01 10:10:48
【问题描述】:

我的自定义 A* 算法中有一个搜索方法。它使用一个集合来跟踪搜索正在做什么。 对于设置路径,我知道我正在对集合执行以下操作: 包含 860x(查找) 删除 91x 添加 270 倍

除非我能找到一种专门排序的方法,否则顺序或排序并不重要。可以根据 X 和 Y 值为每个节点生成唯一的 ID。使字典查找成为可能。

有什么方法可以根据我的方法进行计算,在这种特定情况下使用的最佳集合是什么?

提前致谢, 笑脸

【问题讨论】:

标签: c# list dictionary collections path-finding


【解决方案1】:

人口普查说:

  1. 如果您没有遇到性能问题,请不要理会它。
  2. 如果你这样做了,但你可以摆脱它,别管它。
  3. 如果你这样做了,但你不能(或者你只是喜欢你的代码是紧凑的),那么对它进行基准测试,你会发现。

澄清:我没有使用“过早的优化是万恶之源”的参考,因为我确实认为有优化的地方。这里有一个good article关于这个主题) .

从你所说的来看,我怀疑它会产生很大的变化,除非你在几乎没有资源的设备上运行,但同样,除非你需要它,对于上述数字,我怀疑你'看看有什么不同。

编辑
根据聊天室的继续,我建议查看哈希表和字典。更具体地说,Sorted Dictionary :)。
有关 c# 中的哈希表与字典的有趣阅读,您可以查看 this questionat this one

祝你好运,随时发布你的结果供其他人学习。

【讨论】:

  • 这有一个推论,在案例 1 和 2 中,您可以只关注可读性。
  • 始终关注可读性...如果您必须针对性能进行调整,请让 cmets 解释原因、时间、由谁以及任何其他有帮助的事情(我也会评论调整的实际速度优势。如果这听起来工作量太大,您可能不需要调整它开始 :) )
  • 嗯,整个寻路的事情都集中在性能上。它应该可以在几乎任何回到 Ipad 1 的移动设备上运行(尽管它不再被苹果支持) 搜索方法用于快速找到最短路径。大部分时间都花在正在进行的收集工作上,所以任何优化都应该是好的。至于你使用什么集合,我怀疑它会以任何方式影响可读性。
  • 您会惊讶地发现,选择不当的收藏品会在未来对您造成伤害。回到问题,您是否对在慢速设备上执行所需的时间进行了基准测试? (我不是想消极,只是给出关于这类事情的一般建议)。
  • 使用这个当前系统,还没有。但相比之下,PC 的性能已经花费了很长时间。 (轻松搜索 150 毫秒)看到大部分时间是如何简单地分配和搜索该 1 个集合,我宁愿使用更有效的东西。剩下的寻路的计算和推理,赢不了多少
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-12-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多