今天,在队长的带领下学习了弗洛伊德算法。
一、弗洛伊德(Floyd)算法的概念
Floyd算法又称为插点法,是一种利用动态规划的思想寻找给定的加权图中多源点之间最短路径的算法,与Dijkstra算法类似
二、弗洛伊德(Floyd)算法与迪杰斯特拉算法区别
1.迪杰斯特拉算法通过选定的被访问顶点,求出从出发访问顶点到其他顶点的最短路径; 弗洛伊德算法中每一个顶点都是出发访问点,所以需要将每一个顶点看做被访问顶点,求出从每一个顶点到其他顶点的最短路径。
2.Floyd算法,则修正了dijkstra算法对于边权为负问题的不足,引入了一个外循环,来遍历每个点,从而查询该点是不是在i和j之间,这样的话,无论边权为负值还是正值,都会被考虑进去。对于邻接矩阵A来说,在k-1次迭代后,A(k-1)[i][j]为所有从顶点i到j且不经过k之后的顶点的最小长度,有可能经过k之前的点。所以在遍历过程中需要比较A[i][j]与A[i][k]+A[k][j]的大小,取小值,表示比较经过k点与不经过k点的路径长度大小。
三、弗洛伊德(Floyd)算法的基本思想
设置顶点vi到顶点vk的最短路径已知为Lik,顶点vk到vj的最短路径已知为Lkj,顶点vi到vj的路径为Lij 则vi到vj的最短路径为:min((Lik+Lkj),Lij(直连)),vk的取值为图中所有顶点,可获得vi到vj的最短路径。
四、弗洛伊德(Floyd)算法的步骤
1 .使用二维数组dis储存路径,同时最终状态代表点的最短路径。如果没有直接相连的两点那么默认为一个很大的值(不要溢出)!
2 .从第1个到第n个点依次加入图中。每个点加入进行试探是否有路径长度被更改。
3. 而上述试探具体方法为遍历图中每一个点(i,j双重循环),判断每一个点对距离是否因为加入的点而发生最小距离变化。如果发生改变,那么两点(i,j)距离就更改。
4 .重复上述直到最后插点试探完成。最终dis数组中存放的就是任意两个结点之间的最短距离。
学习应当"披坚执锐,所向披靡",拥有一往直前的精神。
http://www.dxsbao.com/shijian/472197.html
点此复制本页地址
十天的工作终于结束了,对于我们后勤组,准确地说是十一天。从15号开始到25号结束,我们后勤组没有一天是真正地休息。就算最后一天我们没有做饭,但是后勤工作我们还是要完成的。很高兴我……
“蓓蕾”社会实践 岭南师范学院“蓓蕾”文化支教社会实践队查看全文 >>
来到前进中心学校进行三下乡实践让我想起了太多太多小时候的事情。那时候我们像这里一样,没有手机没有网络更没有WiFi。但是我们也一样过得很快乐,我们也会向你们一样想出各种新奇的游戏……
“蓓蕾”社会实践 岭南师范学院“蓓蕾”文化支教社会实践队查看全文 >>
十天的“三下乡”生活终于结束了,一开始的时候我糊里糊涂地加入了“蓓蕾”社会实践队,到后来和大家很和谐地相处,我也有了很大的收获。我是队伍里唯一一个体科院的学生,因为我们队伍……
“蓓蕾”社会实践 岭南师范学院“蓓蕾”文化支教社会实践队查看全文 >>
为期十天的三下乡支教活动今天就结束了,我从一开始的不适应到现在和学生们的离别,我发觉在那里支教的时间竟然过的如此飞快,我感觉我从这一次三下乡支教活动中从学生身上学会到很多,……
“蓓蕾”社会实践 岭南师范学院“蓓蕾”文化支教社会实践队查看全文 >>
为期10天的“三下乡”生活结束了,十天生活不算长,但是从中得到的收获却是受益终生的。我没有什么特别的才艺,面试过后能得到“蓓蕾”社会实践队的赏识并加入他们确实是我的幸运。加入队……
“蓓蕾”实践队 岭南师范学院“蓓蕾”文化支教社会实践队查看全文 >>
读万卷书,行万里路。三下乡社会实践活动是为我们大学生行万里路提供了契合的机会,因此,作为当代青年大学,生我们理应积极参加三下乡活动,而不是一直在抱怨自己的暑假时长变短。三下……
“蓓蕾”社会实践 岭南师范学院“蓓蕾”文化支教社会实践队查看全文 >>
时间一天天地过去,我们的三下乡生活也已进入了尾声。我们即将离开这片满是树木花草的土地,我们即将与这群稚嫩又可爱的小孩子挥手说再见,我们即将与队里的这群并肩作战过的伙伴们告别……
“蓓蕾”社会实践 岭南师范学院“蓓蕾”文化支教社会实践队查看全文 >>
“曾经的我想唱就唱我最闪亮,这一年夏天有最感动的阳光,你给我梦想,我勇敢往前闯……”是啊,正如我们《我最闪亮》中所说,这一年夏天,我们充满了感动。——题记时光飞逝,转眼离别……
“蓓蕾”社会实践 岭南师范学院“蓓蕾”文化支教社会实践队查看全文 >>