![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法设计
文章平均质量分 73
Korpse
这个作者很懒,什么都没留下…
展开
-
DFS(深度优先遍历) & BFS:(广度优先遍历)
DFS (Deep First Search)概念: 顾名思义,这种遍历方法是以深度为优先进行对图的搜索或者遍历,至于什么是以深度为优先条件,先看下面DFS的基本步骤: ( 这是一个递归思想的DFS) DFS:从当前节点开始,先标记当前节点,再寻找与当前节点相邻,且未标记过的节点: (1): 当前节点不存在下一个节点,则返回前一个节点进行DF...原创 2018-07-20 14:58:32 · 5412 阅读 · 1 评论 -
01背包,完全背包,多重背包,混合背包详解
文章转载至:https://www.cnblogs.com/kuangbin/archive/2011/11/16/2250560.htmlP01: 01背包问题题目: 有N件物品和一个容量为V的背包。第i件物品的费用是c[i],价值是w[i]。求解将哪些物品装入背包可使价值总和最大。基本思路: 这是最基础的背包问题,特点是:每种物品仅有一件,可以选择放或不放。...转载 2018-08-12 20:03:19 · 724 阅读 · 0 评论 -
Dijkstra算法为什么不能用于负权图
Dijkstra算法是贪心算法,大概前提是,从当前的所有可能中就能找到全局的最优解,而负权图不满足这个条件(比如本文末尾的图例)让我们从它的算法步骤上仔细分析一下:(如果需要算法详解点这里) 1.将图上的初始点看作一个集合S,其它点看作另一个集合 2.根据初始点,求出其它点到初始点的距离d[i] (若相邻, 则d[i]为边权值;若不相邻,则d[i]为无限大...原创 2018-12-19 20:21:29 · 20538 阅读 · 14 评论 -
赫夫曼(Huffman)树/编码
一 . 基本概念:赫夫曼树:给定带权的N个叶子构成的所有二叉树中,树的带权路径长度最小的二叉树(最优二叉树)带权路径长度:所有树叶到树根之间的路径长度与该节点上权的乘积权:赋予节点的有意义的参数二 . 赫夫曼树的构造 例:设权值集合{2,4,5,7} 1.根据权值进行排序,取最小的两个叶子(2,4),较小的在左,较大的在右。添...原创 2018-07-20 15:00:26 · 5053 阅读 · 1 评论 -
python - 根据表达式打印真值表
输入逻辑表达式,输出真值表,支持六个基本逻辑运算最终效果: 输入合适公式(没有考虑优先级,只根据括号优先),输出时会提取其中的元素(比如这里有A B C),并打印真值表。 算法思路: 求值的一般顺序是:带入每个元素的值,求出式子的真值,所以可以分为两块:1.枚举元素值(枚举) 2.根据元素值求式子值(计算) 我认为这个的难点在于枚举,我们既要想办法提取...原创 2018-11-03 20:31:34 · 9084 阅读 · 1 评论