
算法学习笔记
西西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 · 1036 阅读 · 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 · 649 阅读 · 0 评论 -
暴力搜索------回溯法
回溯法(backtracking)是深度优先搜索(DFS)的一种,按照深度优先的顺序便利解答树。应用范围很广,只要能把待求解的问题分成不太多的步骤,每个步骤又只有不太多的选择,都可以考虑应用回溯法。在学习回溯法之前,一定要保证递归程序能熟练准确地写出。 当把问题分成若干步骤并递归求解时,如果当前步骤没有合法选择则函数将返回上一级递归调用。 例如: 八皇后问题:原创 2015-03-12 07:58:44 · 6007 阅读 · 1 评论 -
动态规划
动态规划(dynamic programming)是求解决策过程(decision process)最优化的数学方法。一般分为: 线性动规:拦截导弹,合唱队形,挖地雷,建学校,剑客决斗等; 区域动规:石子合并, 加分二叉树,统计单词个数,炮兵布阵等; 树形动规:贪吃的九头龙,二分查找树,聚会的欢乐,数字三角形等; 背包问题:01背包问题,完全背包问题,分原创 2015-03-12 19:39:57 · 842 阅读 · 0 评论