Dijkstra算法
Dijkstra算法是一种计算从单个源到所有其他源的最短路径的贪心算法(无法解决边权值为负的情况)
考虑下图:
如果索引为i的节点和索引为j的节点相邻,则array[i][j] === 1,否则array[i][j] === 0,注意此图是有向图(图这种数据结构,可以参考我之前的文章ES6实现图的数据结构),A与B是相邻的,而B与A是不相邻的
我们来看看如何找到顶点A和其余顶点之间的最短路径。但首先,我们需要声明表示上图的 邻接矩阵,如下所示:
let graph = [
[0, 2, 4, 0, 0, 0],
[0, 0, 2, 4, 2, 0],
[0, 0, 0, 0, 3, 0],
[0, 0, 0, 0, 0