最短路的内容是我们集训第二天下午的内容。关于它,我的感觉是,它其实跟最小生成树的思想基本一样。它们都在不断寻找最小值并在寻找中不断更新下一条路的值,以达到最优。而它们的不同点在于最小生成树需要走完所有的路(也就是所有点),而最短路呢,它只追求走到目的地的最短路径,它不管是否走完所有点,只要用最短的路径去往目的地就是最优解。

关于最短路的算法有三,其中Dijkstra算法和Floyd算法是以点为计算的主体,而Bellman算法,这个算法则是以图当中的边为主体进行计算的。

首先Floyd算法:
Floyd算法旨在用一种暴力的思想,来穷举出来所有的可能路径情况,然后不断优化自己已经保存过的最优解,来完善自己的答案。(对于它嘛,就是暴力就好了)从三个for就可以看出????。
关于#最短路#
其次Dijkstra算法:
Dijkstra算法的想法和Floyd算法一样,旨在通过暴力举例的方式来计算点与点之间的最短路。但不同的是Floyd算法用于计算出一点到所有点的最短路径,而Dijkstra算法则是计算一点到另一点的最短路。
关于#最短路#
最后是Bellman算法:
和Dijkstra差不多,不过模型上简单了很多,就是建立两种集合,一个是点的集合,一个是边的集合,然后穷举,开始检查是否加了新的边之后,令其到某点的距离可以更近。
关于#最短路#
最短路的初步认知基本就是这样了,完事收工????。

相关文章: