这个算法一般出现在网络中,用于路由器的路由寻址,我也只了解这方面的优缺点。如果不对,LZ就别看了。
所谓最短路径,实际上说的是跳数。比如从一条路走会经过三个路由器,而从另一条路走,会经过两个路由器,那么此算法会判断2跳比3跳要短,但具体每一跳会花多长时间,经过多长路程,它不会考虑的。所以不一定算法的最短路径就是真实的最短。因为很多因素算法没有考虑,比如通信质量,网线长度……
C语言我只看过一个模拟现实的例子,大概是说公车走什么路线长度最短,那个算法考虑的是路线的长短,而不是跳数,优点当然就是路线的绝对最短,缺点就是没考虑到其他现实因素,比如是否堵车(相当于网络通信质量)之类。
总之不管什么算法,考虑到的因素就是它的优点,反过来说,缺点往往就是算法忽略的因素。
补充一下,如果说的不是算法本身的优劣,而是细节的实现方面,那就是从时间复杂度和空间复杂度两个方面去考虑了,希望对LZ有用。