深度优先搜索(DFS)
深度优先搜索,是从起点v0开始,优先往下v1,v2级搜索下去,同样的举例子:
假设有一个这样的文件夹:
?...深度优先搜索
深度优先搜索的做法为:
1:保存v0级别的所有文件,1,2,3,4,5,测试文本01.txt,测试文本02.txt,
2:先遍历v0级别的目录1,判断为目录,而不是目标文件
3:保存目录...深度优先搜索的做法是,从一个起点开始,一直遍历下去,直到满足条件或者没有数据遍历,则开始第二个点开始遍历,直到最后一个vo级数据遍历完毕
广度优先搜索和深度优先搜索
现在我们已经知道了广度优先搜索以及深度优先搜索的搜索步骤...我们根据它们之间的特性进行分析:
内存消耗
当子节点过多的时候,广度优先搜索需要保存更多的子节点数据以便于下次遍历,而深度优先搜索只需要保存当前节点的上下级节点
例如,
当v0级文件夹有10个文件夹...,需要遍历全部数据,消耗更多的时间
广度优先搜索消耗更多的内存,消耗相对较少的时间,找出的是最优解,
算法实现
深度优先准备工作如下:
1:结果集数组,将匹配正确的结果集数组保存
2:递归函数,栈实现深度搜索