集训第十天(2017/8/9):搜索专题最后一天,总结
2017-08-09 19:51
267 查看
因为我的进度有些慢,所以这十天的搜索专项训练只练习了深度优先搜索(DFS),广度优先搜索(BFS),最短路径算法(Floyed算法和Dijkstra算法),在这里做一下总结吧:
首先是DFS,这种算法也叫搜索与回溯算法,主要是用递归来实现,今天有详细看了一下递归,这是一个很难懂的算法,明白了递归算法,dfs也就不难理解了。
首先,递归为什么叫递归?顾名思义,递(递去)归(归来),这包含着递归的两种实现方式,一是在一层一层的往下递去的过程中得出解,这与迭代很相似;二是迭代到尽头,返回上一步,上一步再返回它的上一步...一直到得出解,这就是回溯。所以目前我所掌握的递归可以解决两种问题:一是在去的路上得出了解,二是在回来的路上得出解(恩。。。比较肤浅的理解吧)。
而搜索与回溯算法就是用了递归的第二种方法:为了求得某一问题的解,先选择一种情况向下探索,在探索过程中,一旦发现原来的选择是错误的,就退回一步重新选择,继续向下探索,如此反复直到得出解或者证明无解。这就是DFS的原理。
再谈一谈BFS,个人认为BFS比DFS简单,因为不用递归(思维量小很多啊~~~),这个算法原理是:从初始节点开始,应用算符生成第一层节点,检查目标节点是否在这些后续节点中,若没有,再用产生式规则(一般用队列来实现)将第一层节点逐一扩展(将第一层拓展的节点加入队列),得到第二层节点,并逐一检查第二层节点中是否包含目标节点,若没有,再逐一扩展到下一层节点...直到发现目标节点为止。
然后是最小路径算法:floyed算法和dijkstra算法,都很有名,在这里三言两语讲不清楚啊,算法书上都有详细的解释啊~~~。
明天就是单调队列和二分法的专题了,一定要跟上!!!
首先是DFS,这种算法也叫搜索与回溯算法,主要是用递归来实现,今天有详细看了一下递归,这是一个很难懂的算法,明白了递归算法,dfs也就不难理解了。
首先,递归为什么叫递归?顾名思义,递(递去)归(归来),这包含着递归的两种实现方式,一是在一层一层的往下递去的过程中得出解,这与迭代很相似;二是迭代到尽头,返回上一步,上一步再返回它的上一步...一直到得出解,这就是回溯。所以目前我所掌握的递归可以解决两种问题:一是在去的路上得出了解,二是在回来的路上得出解(恩。。。比较肤浅的理解吧)。
而搜索与回溯算法就是用了递归的第二种方法:为了求得某一问题的解,先选择一种情况向下探索,在探索过程中,一旦发现原来的选择是错误的,就退回一步重新选择,继续向下探索,如此反复直到得出解或者证明无解。这就是DFS的原理。
再谈一谈BFS,个人认为BFS比DFS简单,因为不用递归(思维量小很多啊~~~),这个算法原理是:从初始节点开始,应用算符生成第一层节点,检查目标节点是否在这些后续节点中,若没有,再用产生式规则(一般用队列来实现)将第一层节点逐一扩展(将第一层拓展的节点加入队列),得到第二层节点,并逐一检查第二层节点中是否包含目标节点,若没有,再逐一扩展到下一层节点...直到发现目标节点为止。
然后是最小路径算法:floyed算法和dijkstra算法,都很有名,在这里三言两语讲不清楚啊,算法书上都有详细的解释啊~~~。
明天就是单调队列和二分法的专题了,一定要跟上!!!
相关文章推荐
- 2017.8.9暑假集训第十天(+搜索图论总结)
- [kuangbin带你飞]专题一 简单搜索 总结
- 最后一天工作日,总结一下今年的工作
- 【暑假集训专题#搜索】
- 2008年8月17号,晴。实验室放假的第十天。今天是假期的最后一天,我晚上的火车,昨天儿子闹了一个晚上,早上我和太太逗他玩得时候,小家伙竟然把屎拉到我的身上
- 2012最后一天的总结,新一天的开始
- 搜索专题总结
- 【笔记】搜索专题总结
- 专题二 总结(搜索)
- 暑期集训搜索专题(一)
- 2014暑假集训搜索专题
- 【暑假集训专题#搜索】
- 专题2-搜索总结
- 搜索专题总结
- kuangbin专题一简单搜索总结
- 【暑假集训专题#搜索 HDU1241】
- 2010暑期集训第一专题(数据结构)总结
- 搜索专题总结
- 年终最后一天-总结
- 暑期集训搜索专题(一)