
算法
算法
Fighting_初心
种一棵树最好的时间是十年前,其次是现在。
展开
-
经典算法之并查集
一、什么是并查集 并查集,在一些有N个元素的集合应用问题中,我们通常是在开始时让每个元素构成一个单元素的集合,然后按一定顺序将属于同一组的元素所在的集合合并,其间要反复查找一个元素在哪个集合中。 其特点是看似并不复杂,但数据量极大。若用正常的数据结构来描述的话,往往在空间上过大,计算机无法承受;即使在空间上勉强通过,运行的时间复杂度也极高。 并查集是...原创 2020-01-16 08:48:55 · 308 阅读 · 0 评论 -
经典算法之分支限界法
一、概述 分支限界法类似于回溯法。 分支限界法思路的简单描述:把问题的解空间转化成了图或者树的结构表示,然后使用广度优先或以最小耗费(最大效益)优先的搜索策略进行遍历,遍历的过程中记录和寻找一个可行解或者最优解。 在分支限界法中,每一个活结点只有一次机会成为扩展结点。活结点一旦成为扩展结点,就一次性产生其所有儿子结点。在这些儿子结点中,导致不可行解或...原创 2020-01-13 20:02:14 · 9806 阅读 · 1 评论 -
经典算法之回溯法
一、概述 回溯法思路的简单描述:把问题的解空间转化成了图或者树的结构表示,然后使用深度优先搜索策略进行遍历,遍历的过程中记录和寻找所有可行解或者最优解。 回溯法按深度优先策略搜索问题的解空间树。首先从根节点出发搜索解空间树,当算法搜索至解空间树的某一节点时,先利用剪枝函数判断该节点是否可行(即能得到问题的解)。(1)如果不可行,则跳过对该节点为根的子树的搜...原创 2020-01-13 15:35:17 · 1111 阅读 · 0 评论 -
经典算法之动态规划
一、引例 先来看看生活中经常遇到的事吧——假设您是个土豪,身上带了足够的1、5、10、20、50、100元面值的钞票。现在您的目标是凑出某个金额w,需要用到尽量少的钞票。 依据生活经验,我们显然可以采取这样的策略:能用100的就尽量用100的,否则尽量用50的……依次类推。在这种策略下,666=6×100+1×50+1×10+1×5+1×1,共使用了10张钞票...原创 2020-01-10 12:27:11 · 423 阅读 · 1 评论