这周写了好多的算法题,也知道了很对之前不知道的知识点,就比如说最短路径问题,指的是:从某顶点出发,沿图的边到达另一顶点所经过的路径中,各边上权值之和最小的一条路径叫做最短路径。解决最短路的问题有以下算法,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];
}
}
也算是很有用了,虽然现在还没完全学会...