本周在学习上,又复习了所有的排序算法,跟着Java老师又学习了Java的第六章和第七章,了解了dfs(深度优先探索)和bfs(广度优先探索),DFS 一般是解决连通性问题,而 BFS 一般是解决最短路径问题,还是非常有用的,不过这点东西对蓝桥杯来说,只能是杯水车薪了罢
这个星期学校终于放出消息,物联转到计科成功通过,可能下周就会出课表,又是一个既新有旧的体验,这两星期又举办什么团支书大赛,班里又得排节目,这大学生活是一点都不闲。
写点知识点吧:dfs:一种用于遍历或搜索树或图的算法。沿着树的深度遍历树的节点,尽可能深的搜索树的分支。当节点v的所在边都己被探寻过或者在搜寻时结点不满足条件,搜索将回溯到发现节点v的那条边的起始节点。整个进程反复进行直到所有节点都被访问为止。属于盲目搜索,最糟糕的情况算法时间复杂度为O(!n)。其中包含了回溯的思想,可以做到及时止损。基本的代码
int check(参数){
if(满足条件)
return 1;
return 0;}
void dfs(int step){ 判断边界
{ 相应操作 }
尝试每一种可能 {
满足check条件
标记
继续下一步dfs(step+1)
恢复初始状态(回溯的时候要用到)
}
}