算法学习笔记
西西L
这个作者很懒,什么都没留下…
展开
-
广度优先搜索(BFS)
广度优先搜索(BFS)是最简便的图的搜索算法之一,这一算法也是很多重要的图的算法的原型。算法:1、构造由根组成的队列Q;2、If Q的第一个元素x是目标节点 Then 停止;3、从Q中删除x, 把x的所有子节点加入Q的末尾;4、If Q空 Then 失败 Else goto 2.举例:八数码问题:------输入:具有8个编号小方块的魔方原创 2015-03-12 21:02:43 · 1006 阅读 · 0 评论 -
深度优先搜索(DFS)
深度优先搜索属于图算法的一种,英文缩写为DFS即Depth First Search.其过程简要来说是对每一个可能的分支路径深入到不能再深入为止,而且每个节点只能访问一次.算法:1、构造一个有根构成的单元素栈S;2、If Top(S) 是目标节点 Then 停止;3、Pop(S), 把Top(S)的所有子节点压入栈顶;4、If S空 Then 失败 Else goto原创 2015-03-12 21:24:48 · 625 阅读 · 0 评论 -
暴力搜索------回溯法
回溯法(backtracking)是深度优先搜索(DFS)的一种,按照深度优先的顺序便利解答树。应用范围很广,只要能把待求解的问题分成不太多的步骤,每个步骤又只有不太多的选择,都可以考虑应用回溯法。在学习回溯法之前,一定要保证递归程序能熟练准确地写出。 当把问题分成若干步骤并递归求解时,如果当前步骤没有合法选择则函数将返回上一级递归调用。例如: 八皇后问题:原创 2015-03-12 07:58:44 · 5926 阅读 · 1 评论 -
动态规划
动态规划(dynamic programming)是求解决策过程(decision process)最优化的数学方法。一般分为:线性动规:拦截导弹,合唱队形,挖地雷,建学校,剑客决斗等;区域动规:石子合并, 加分二叉树,统计单词个数,炮兵布阵等;树形动规:贪吃的九头龙,二分查找树,聚会的欢乐,数字三角形等;背包问题:01背包问题,完全背包问题,分原创 2015-03-12 19:39:57 · 806 阅读 · 0 评论