最短路径Dijkstra算法.pptx
上传人:骑着****猪猪 上传时间:2024-09-14 格式:PPTX 页数:9 大小:128KB 金币:20 举报 版权申诉
预览加载中,请您耐心等待几秒...

最短路径Dijkstra算法.pptx

最短路径Dijkstra算法.pptx

预览

在线预览结束,喜欢就下载吧,查找使用更方便

20 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

会计学1最短路径求从源点到其余各点的最短路径的算法的基本思想:2Dijkstra算法即迪杰斯特拉算法,其基本思想如下:3)每次从集合V-S中取出具有最短特殊路径长度的顶点u,将u加到S中,同时对数组Dist做必要的修改。若Dist[u]+[u][k]<Dist[k]则将Dist[k]改为Dist[u]+[u][k]。其中,特殊路径指从源点到u中间只经过S中顶点的路径。若带权图G如下所示,根据上述算法来求解源点v0到v2的最短路径。根据以上分析和举例,不难得出狄杰斯特拉算法,其描述如下:D[v0]=0;final[v0]=TRUE;//初始化,v0顶点在S集中//开始主循环,每次求得v0到某个顶点v的最短距离,将v加到S集for(i=1;i<G.vexnum;i++){min=INFINITY;for(w=0;w<G.vexnum;i++)//求得当前离v0顶点最近距离if(!final[w])if(D[w]<min){v=w;min=D[w];}final[v]=TRUE;//离v0最近距离顶点v加入S集for(w=0;w<G.vexnum;w++)//更新当前最短路径及距离if(!final[w]&&(min+G.arcs[v][w]<D[w])){D[w]=min+G.arcs[v][w];P[w]=P[v];P[w][w]=TRUE;}}}