学习记录

这周写了好多的算法题,也知道了很对之前不知道的知识点,就比如说最短路径问题,指的是:从某顶点出发,沿图的边到达另一顶点所经过的路径中,各边上权值之和最小的一条路径叫做最短路径。解决最短路的问题有以下算法,Dijkstra算法,Bellman-Ford算法,Floyd算法和SPFA算法等。这也是蓝桥杯的JavaB组的真题,路径,,算是学长提醒了我们,用到了迪杰斯也拉算法和弗洛伊德算法,我也是第一次去学习了关于最短路径的算法,就是下边这些


for (int k = 0; k < n; k++) {


            //中介点为k


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


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


                    //(i和k、k和j之间的边长不为零且(i和j之间没有边长或者通过中介点k,i到k,k到j的距离之和小于i到j的距离))成立则替换i到j的距离


                    if (floyd[i][k] != 0 && floyd[k][j] != 0 && (floyd[i][j] == 0 || floyd[i][k] + floyd[k][j] < floyd[i][j]))


                        floyd[i][j] = floyd[i][k] + floyd[k][j];


                }


            }


也算是很有用了,虽然现在还没完全学会...

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容