【发布时间】:2022-01-14 10:53:09
【问题描述】:
在 A* 搜索中,哪种数据结构更高效?最小堆或二叉搜索树。
考虑到要经常处理以下操作: (a) 提取分钟 (b) 搜索节点 (c) 更新节点 (d) 插入一个节点
注意:搜索操作会非常频繁,因为我们需要检查 A* 的打开列表中每个可能的子节点是否存在。
【问题讨论】:
-
这可能需要更长的时间,但您始终可以同时实现这两种方法,并为它们计时,看看哪一种更适合您
-
在 A* 算法中您究竟需要 search 什么?如果您指的是更新节点的分数,那么您已经拥有该节点(来自正在搜索的树),并且可以确保您拥有(并保持)与相关堆节点的连接。我不明白为什么你真的需要在堆中搜索某个键。
标签: python-3.x data-structures binary-search-tree a-star min-heap