最短路径算法

简介: 最短路径算法 #include <iostream>   void path(){     //val[i][j]从i点到j点的距离,如果不可到达到,设置成0     int val[8][8];     //res[i][j]从i点到j点的最短距离,我们只要得到res[0][7]     int res[8][8];     //fa[i]i点的前一个最短

最短路径算法

#include <iostream>

 

void path(){

    //val[i][j]从i点到j点的距离,如果不可到达到,设置成0

    int val[8][8];

    //res[i][j]从i点到j点的最短距离,我们只要得到res[0][7]

    int res[8][8];

    //fa[i]i点的前一个最短距离点

    int fa[8];

    for (int i = 0; i<8; i++) {

        for (int j = 0; j<8; j++){

            val[i][j] = 0;

            res[i][j] = 10000;

        }

        fa[i] = -1;

    }

    res[0][0] = 0;

    val[0][1] = 13;

    val[0][2] = 15;

    val[0][3] = 16;

 

    val[1][4] = 18;

    val[1][5] = 17;

    val[1][6] = 16;

 

    val[2][4] = 18;

    val[2][5] = 20;

    val[2][6] = 30;

    val[3][4] = 11;

    val[3][5] = 9;

    val[3][6] = 13;

 

    val[4][7] = 16;

    val[5][7] = 14;

    val[6][7] = 17;

 

    for (int i = 1; i<8; i++) {

        for (int j = 0; j<i; j++){

            if (val[j][i] != 0) {

                if (res[0][j] +val[j][i]<res[0][i]) {

                    res[0][i] = res[0][j] +val[j][i];

                    fa[i] = j;

                }

            }

        }

    }

    int point = 7;

    std::cout << 7 << "";

    while (fa[point] != -1) {

        std::cout << "<---" << fa[point];

        point = fa[point];

    }

    std::cout << std::endl;

    std::cout << res[0][7] <<std::endl;

}

 

int main(int argc, const char * argv[]) {

    // insert code here...

    std::cout << "Hello,World!\n";

    path();

 

    system("pause");

    return 0;

}

运行结果:


目录
相关文章
|
算法
Floyd 最短路径【学习算法】
Floyd 最短路径【学习算法】
193 0
|
存储 人工智能 算法
数据结构与算法细节篇之最短路径问题:Dijkstra和Floyd算法详细描述,java语言实现。
这篇文章详细介绍了Dijkstra和Floyd算法,这两种算法分别用于解决单源和多源最短路径问题,并且提供了Java语言的实现代码。
801 3
数据结构与算法细节篇之最短路径问题:Dijkstra和Floyd算法详细描述,java语言实现。
|
10月前
|
存储 算法 测试技术
【狂热算法篇】探秘图论之 Floyd 算法:解锁最短路径的神秘密码(通俗易懂版)
【狂热算法篇】探秘图论之 Floyd 算法:解锁最短路径的神秘密码(通俗易懂版)
|
10月前
|
算法 编译器 C++
【狂热算法篇】探秘图论之Dijkstra 算法:穿越图的迷宫的最短路径力量(通俗易懂版)
【狂热算法篇】探秘图论之Dijkstra 算法:穿越图的迷宫的最短路径力量(通俗易懂版)
|
算法 定位技术
路径规划算法 - 求解最短路径 - A*(A-Star)算法
路径规划算法 - 求解最短路径 - A*(A-Star)算法
2362 1
|
自然语言处理 算法
HanLP — HMM隐马尔可夫模型 - 路径规划算法 - 求解最短路径 - 维特比(Viterbi)算法
HanLP — HMM隐马尔可夫模型 - 路径规划算法 - 求解最短路径 - 维特比(Viterbi)算法
265 0
HanLP — HMM隐马尔可夫模型 - 路径规划算法 - 求解最短路径 - 维特比(Viterbi)算法
|
算法 Java
Java语言实现最短路径算法(Shortest Path)
Java语言实现最短路径算法(Shortest Path)
229 3
|
算法
路径规划算法 - 求解最短路径 - Dijkstra(迪杰斯特拉)算法
路径规划算法 - 求解最短路径 - Dijkstra(迪杰斯特拉)算法
755 0
|
存储 算法 C语言
数据结构学习记录——图-最短路径问题(无权图单源最短路径算法、有权图单源最短路径算法、多源最短路径算法、Dijkstra(迪杰斯特拉)算法、Floyd算法)
数据结构学习记录——图-最短路径问题(无权图单源最短路径算法、有权图单源最短路径算法、多源最短路径算法、Dijkstra(迪杰斯特拉)算法、Floyd算法)
690 1
|
算法 机器人 Python
Python实现教程:平面最短路径算法
Python实现教程:平面最短路径算法
396 1

热门文章

最新文章