我知道 Dijkstra 的算法、Floyd-Warshall 算法和 Bellman-Ford 算法,用于查找图中 2 个顶点之间的最廉价路径。
但是当所有边的成本都相同时,最便宜的路径是边数最少的路径吗?我对吗?没有理由实现 Dijkstra 或 Floyd-Warshall,最好的算法是从源头进行广度优先搜索,直到达到目标?在最坏的情况下,你将不得不遍历所有的顶点,所以复杂度是 O(V)?有没有更好的解决方案?我对吗?
但是互联网上有大量文章讨论了有障碍物的网格中的最短路径,并且提到了 Dijkstra 或 A*。即使在 StackOverfow -找到最短路径的算法,有障碍物 或这里http://qiao.github.io/PathFinding.js/visual/
那么,这些人都是傻子吗?还是我傻?为什么他们向只想将敌人移动到常规网格中的主角的初学者推荐如此复杂的东西,例如 Dijkstra?就像有人问如何在一个列表中找到最小的数字,你建议他实现堆排序,然后从排序后的数组中取出第一个元素。