文章内容概览
迪杰斯特拉算法
Dijkstra(迪杰斯特拉)算法是著名的图论算法
Dijkstra算法解决有权图从一个节点到其它节点的最短路径问题
特点:“以起点为中心,向外层层扩展”
最短路径问题
假设有下图这样的一个网络,该网络有A、B、C、D、E、F这几个节点和若干条边,每条边都有相应的距离。假设此时要求A到E的最短路径
下边列出由A到E的所有可能的路径以及路径长度
A->B->C->E = 13
A->C->E = 11
A->D->C->E =13
A->D->E = 9
A->F->E = 10
从列出的结果来看,最短的路径是A->D->E这条,距离是9。这是人为的去查找的,但是我们是需要将其转换成程序语言来解决求最短路径问题
先用文字介绍一下该算法的整个过程,然后再通过例子来解释每个过程
迪杰斯特拉算法
迪杰斯特拉算法过程描述
初始化两个集合(S,U)(S为只有初始顶点点A的集合,U为其它顶点的集合)
如果U不为空,