发布网友
共2个回答
热心网友
首先,bfs是每走一步,就把所有可能的下一步走法存入数组。然后数组指针向后移一位,也就是说bfs是把所有可能的走法全部同时走一遍,也就是说在同一时刻,走法的数组里还未判断的位置已经走过的步数是相同的(或者只差1),这样一来,当抵达终点后,那一个算法一定是走的步数最少的。
而dfs是把一条路走到底再换另一条,你可以想象一下,一条很绕的路碰巧走到终点,dfs就判断为计算出来了,当然不是最短
热心网友
bfs是发散状的各种走法同时走,第一个成功的一定是最快成功的,dfs是某一条路走到底第一个成功的不一定是最优的路线