迪杰斯特拉算法(Dijkstra algorithm)

版权声明:本文由作者原创,如需使用请联系作者,侵权必究 https://blog.csdn.net/Elliot_Alderson/article/details/82973670

       emmmm....写语气词被同桌吐槽啊....嫌我emmm太长。桑心QAQ

       好把同桌赶跑了~

       这次来讲迪杰斯特拉,这个东西嘛...和我们上一次看的弗洛伊德差不多啦,对没错不是那个写性学三论的家伙,所以不用期待我的文章里会出现什么奇♂怪的东西。

       其实思路都是差不多的,不过我们总是有些蛋疼这种东西怎么造出来的。

       弗洛伊德的基本思想是:

       哇这个东西还能继续一直走我就继续走下去,走到头,看和原来的比较谁最短。

       迪杰斯特拉:

       反正我都知道我要从哪走到哪了,为什么还要那么辛苦去找出来所有的路径呢?

       没错!差别正是在这一点上,弗洛伊德不知道他需要从哪走到哪,但是迪杰斯特拉知道!(迪杰斯特拉好聪明)正是这样的一丁点差别造成了思路的根本性的不同,因为如果我们知道了起点和终点的话,我们只需要对单点进行最短路求解即可!!!

       话是这么说但是真做起来有些手足无措。

       聪明的迪杰斯特拉给了我们这么一个思想:

       从起点开始,我们看除了它自己本身最近可以到达哪里,然后看这一点能到达哪里,如果中转后距离比原来短就更新。而且只考虑中转当前点。

       是不是很熟悉!没错很像是弗洛伊德的阉割版!不过改成了单点更新,而已,把弗洛伊德的三层循环给减少了许多。

       OvO由于我今天没时间所以就写了个文章而已,代码来日再更,能看懂的小伙伴先凑合一下叭~

猜你喜欢

转载自blog.csdn.net/Elliot_Alderson/article/details/82973670