摘要: 在图的应用中,有一个很重要的需求:我们需要知道从某一个点开始,到其他所有点的最短路径。这其中,Dijkstra算法是典型的最短路径算法。它的关键思想是以起始点为中心,向外一层层扩散,直到扩展到终点为止。Dijkstra算法能够得出最短路径的最优解,不过它需要遍历计算的节点相当多,所以效率不高。首先,用最通俗的语言解释。假定有3个顶点,A、B、C,如图:要求A到其余各点的最短路径。很明显,A到C比A到B更短。有疑惑的是从A->B的最短距离,要么是直接A->B的边,要么是A经过C到B的边更短。我们首先找到最短的边(A->C),然后在此基础上扩展,于其余边去对比找到最小值。顶点再进 阅读全文
posted @ 2011-12-29 22:12 SadGeminids 阅读(6314) 评论(0) 推荐(1) 编辑