1、单源最短路径问题的问题提出是,计算带权有向图G =(V, E)中一个点(源点)到其余各顶点的最短路径长度,如下图所示。设源点为顶点1,采用Dijkstra算法求下图中源V0为到其余各顶点的最短路径。

1)将算法编程实现, 并将程序与运算结果截屏填写入实验结果。
package test;
public class twelve {
static float[][] a = {
{
0,0,0,0,0,0,0},
{
0,0,3,4,Float.MAX_VALUE,Float.MAX_VALUE,Float.MAX_VALUE},
{
0,Float.MAX_VALUE,0,1,9,4,Float.MAX_VALUE},
{
0,Float.MAX_VALUE,Float.MAX_VALUE,0,5,13,Float.MAX_VALUE},
{
0,Float.MAX_VALUE,Float.MAX_VALUE,Float.MAX_VALUE,0,Float.MAX_VALUE,8},
{
0,Float.MAX_VALUE,Float.MAX_VALUE,Float.MAX_VALUE,12,0,10},
{
0,Float.MAX_VALUE,Float.MAX_VALUE,Float.MAX_VALUE,Float.MAX_VALUE,Float.MAX_VALUE,0}
};
// static float[][] a = {
// {0,0,0,0,0,0},
// {0,0,10,Float.MAX_VALUE,30,100},
// {0,Float.MAX_VALUE,0,50,Float.MAX_VALUE,Float.MAX_VALUE},
// {0,Float.MAX_VALUE,Float.MAX_VALUE,0,Float.MAX_VALUE,10},
// {0,Float.MAX_VALUE,Float.MAX_VALUE,20,0,60},
// {0,Float.MAX_VALUE,Float.MAX_VALUE,Float.MAX_VALUE,Float.MAX_VALUE,0}
// };
static int n = a.length-1;
static float[] dist = new float[n+1];
static int[] prev = new int[n+1];
public static void

这篇博客探讨了单源最短路径问题,通过Dijkstra算法解决,并展示了算法的编程实现及运行结果。接着,文章介绍了Prim算法在构建连通带权图的最小生成树中的应用,同样提供了算法实现和时间复杂度分析,指出两种算法的时间复杂度均为O(n²)。
最低0.47元/天 解锁文章
4355

被折叠的 条评论
为什么被折叠?



