242得票3回答
区间树、线段树、二叉索引树和范围树有哪些区别?

段树、区间树、二叉索引树和范围树在以下几个方面有何不同: 关键思想/定义 应用场景 性能/高维度顺序/空间消耗 请勿仅提供定义。

233得票17回答
在有向图中查找所有环路

如何找到(遍历)从/到给定节点的有向图中的所有环? 例如,我想要像这样的东西:A->B->A A->B->C->A 但不包括: B->C->B

131得票9回答
Dijkstra算法中如何处理负权重

我正在尝试理解为什么Dijkstra算法不能处理带有负权重的情况。在最短路径的示例中,我试图弄清以下情况: 2 A-------B \ / 3 \ / -2 \ / C 从网站上看: 假设所有边都从左到右有向,如果我们从A开始,Dijkstra算法将...

109得票3回答
为什么Dijkstra算法要使用减小关键字(decrease-key)?

我学习的迪杰斯特拉算法如下所示while pqueue is not empty: distance, node = pqueue.delete_min() if node has been visited: continue else: ...

89得票4回答
将对象图表示法与邻接表和矩阵表示法进行比较

我目前正在遵循Steve Yegge的建议,为技术编程面试做准备: http://steve-yegge.blogspot.com/2008/03/get-that-job-at-google.html 在他关于图形部分的介绍中,他指出: 有三种基本的方法可以在内存中表示图形(对象和...

72得票9回答
非常大的图形A*算法,对于缓存快捷方式有什么想法?

我正在使用OpenStreetMap地图编写一款快递/物流模拟器,发现像下面这样的基本A*算法对于大型地图(如伦敦市区)并不够快。 绿色节点对应于被放入开放集/优先队列中的节点,由于数量巨大(整个地图大约有100-200万个节点),要找到如图所示的路径需要约5秒钟左右。但很遗憾,每条路线的最...

58得票8回答
Dijkstra算法中边的松弛

在图论的背景下,“边的松弛”是什么意思?我在学习狄克斯特拉(Dijkstra)算法以寻找单一源最短路径时遇到了这个问题。

54得票11回答
如何在广度优先搜索中跟踪深度?

我有一棵树作为广度优先搜索的输入,我想知道算法在进行时处于哪个层级?# Breadth First Search Implementation graph = { 'A':['B','C','D'], 'B':['A'], 'C':['A','E','F'], ...

47得票4回答
不考虑返回起点的旅行商问题(TSP)的问题名称是什么?

我想了解一下不考虑回到起点的TSP问题名称以及解决该问题的算法。 我查看了最短路径问题,但那不是我要找的问题,该问题只能从两个指定点之间找到最短路径。我需要的是给定n个点和一个起始点,然后找到恰好经过所有点的最短路径(终点可以是任意点)。 我还查看了哈密顿路径问题,但似乎不能解决我定义的问题,...

47得票3回答
构建一个涵盖特定顶点集的最小生成树。

我有一个无向的、正边权重图(V,E),我想要覆盖顶点子集k的最小生成树(史泰纳树问题)。 我不限制生成树的大小为k个顶点;相反,我知道需要在MST中准确地包含哪些k个顶点。 从整个MST开始,我可以逐渐缩减边和节点,直到得到包含所有k的最小MST。 我可以使用Prim算法获得整个MST,...