14最短路径
最短路径
概念
源点:一条路径的起始点
终点:一条路径的终止点
迪杰斯特拉算法-单源点
变量引入介绍
引入一个辅助变量D(数组)
它的每一个分量表示 当前找到的“从源点v开始到每一个顶点vi的最短路径”的长度
初始状态:如果v到vi有弧,表示权值,否则无穷大
引入路径向量,表示当前结点的上一个结点下标
引入final标记,表示已经经过测试的路径点
解法说明
从初始开始,标记final,然后找相邻结点的最短路径。
更新相邻结点的辅助向量(=min(当前结点+到这个结点的权值,之前的辅助向量))
在final未标记的点继续循环,直到找到
完成后从末尾倒推出最短路径
代码实现
|
弗洛伊德算法-任意两个结点间的路径
数学表达式
步骤:
外层循环:从第一个结点开始
内存循环:检查经过每个结点一次,比较路径并更新
实现结构:
邻接表和路径向量数组
|
发布于