弗洛伊德算法(转)
Posted lwhblog
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了弗洛伊德算法(转)相关的知识,希望对你有一定的参考价值。
https://blog.csdn.net/qq_34374664/article/details/52261672
https://blog.csdn.net/qq_35644234/article/details/60875818
这两篇结合起来看,便于理解
人物简介以及瞎bb
弗洛伊德,我还特意去百度了一下,结果搜出好多弗洛伊德。最后还是找到了我们这次的主角。
罗伯特·弗洛伊德,计算机科学家,图灵奖得主,前后断言法的创始人,堆排序算法和Floyd-Warshall算法的创始人之一。这一段当然是摘自百度了。
可以说他是自学成才的,因为人家本来是搞文学的,就是因为对计算机的兴趣以及自己不懈的努力,终于称为计算机领域一位举足轻重的人物,这一点值得吾辈学习。
计算机是一门崇高的学科,它是一门伟大的科学,而我们就是这个领域的战士,所以,不要觉得这个东西很无聊,我们是在改变世界啊!不仅是为了工资,也让我们为了科学而不断的奋斗吧,人总要有一些崇高的理由,让生活有仪式感。
现在进入正题。
正题
它跟迪杰斯特拉算法不同的地方在于,它可以求出任意两点的最短距离。
说穿了,也就是遍历。首先你要拿出一个中介点,然后计算其余任意两点通过这个中介点的最短距离。
每个点都会被当作中介点。
首先,你要列出两个矩阵,从上面第二篇文章中的图来看。
首先,初始化两个矩阵,然后你看,如果两点的距离大于它们各自到这个中介点的距离之和,那么就把它替换为到中介点的距离之和。
同样修改P矩阵,把它们的中介点修改为当前中介点,初始中介点为边的终点。
通过一次次的遍历,总会得到两点的最短距离,这是我的初步理解
以上是关于弗洛伊德算法(转)的主要内容,如果未能解决你的问题,请参考以下文章