深度优先搜索(DFS)
深度优先搜索,是从起点v0开始,优先往下v1,v2级搜索下去,同样的举例子:
假设有一个这样的文件夹:
?...深度优先搜索的做法是,从一个起点开始,一直遍历下去,直到满足条件或者没有数据遍历,则开始第二个点开始遍历,直到最后一个vo级数据遍历完毕
广度优先搜索和深度优先搜索
现在我们已经知道了广度优先搜索以及深度优先搜索的搜索步骤...广度优先在遍历到第20次的时候(vo级和v1级都遍历完),这时候的队列已经保存了10*10-20(已经遍历过)需要遍历的数据
而深度优先在这个时候,只保存了10(v0级文件夹)+0(v1级第一个已经遍历完毕...这样子,我们就可以找到层级最高的"仙士可.txt"
而在广度优先搜索中,我们只需要v0下去逐层查找,找到之后立即返回即可
深度优先搜索可以在消耗少量内存的情况下找到一个解,但这个解并不一定是最优解,如果需要找最优解...,需要遍历全部数据,消耗更多的时间
广度优先搜索消耗更多的内存,消耗相对较少的时间,找出的是最优解,
算法实现
深度优先准备工作如下:
1:结果集数组,将匹配正确的结果集数组保存
2:递归函数,栈实现深度搜索