
算法复习
文章平均质量分 69
Nerd~
这个作者很懒,什么都没留下…
展开
-
Branch and Bound Algorithm
Branch and Bound Algorithm分支限界算法主要思想限界函数两种常见的分支限界先进先出(FIFO)最小耗费或最大收益分支限界和回溯分支限界算法分支限界算法是另一种系统搜索解空间的方法。分支限界算法也常把解空间组织成树的结构(常捡的,子集树和排列树),一般采用广度优先(BFS)或最小耗费来搜索树主要思想对一个扩展结点,一次生成其所有的子节点,将不可能产生可行解(或最优解)的结点舍去,其余的记入活结点表;按照一定规则,从活结点表中取出下一个结点作为新的扩展结点,重复展开,直到得到可原创 2020-12-23 20:46:07 · 816 阅读 · 1 评论 -
Backtracking
Backtracking回溯法主要思想基本步骤剪枝函数约束条件和限界函数算法框架递归回溯迭代回溯子集树排列树子集和数问题深度优先搜索(DFS)回溯法回溯算法是搜索问题的一种系统方法,回溯算法和分支限界算法都是对候选解进行系统检查的方法,两种方法可以使得最坏情况下和一般情况下的求解时间大大减少。主要思想用合适的组织方法组织问题的解空间(通常是解空间树),通过深度优先策略对解空间进行遍历。根节点作为遍历的开始节点,开始节点既是活结点(live node)又是扩展结点(expansion node)。原创 2020-12-22 11:37:26 · 206 阅读 · 0 评论 -
Devide and Conquer
Devide and Conquer分治算法——分而治之分治算法的基本思想分治算法的使用条件分治算法的基本步骤归并排序快速排序分治算法——分而治之分治算法的基本思想将问题划分(devide)成多个子问题递归的解决(conquer)每个子问题将子问题的解合并(combine)为原问题的解分治算法的使用条件分治算法能解决的问题一般具有如下特征:①问题的规模缩小到一定程度就可以很容易的解决②问题可以分解为若干规模较小的相同问题③利用分解出的子问题的解可以合并为原问题的解④原问题分解出的各个子原创 2020-12-21 19:14:25 · 536 阅读 · 2 评论 -
Greedy Method
Greedy Method最优化问题(Optimization Problems)贪心准则最优化问题(Optimization Problems)m每个最优化问题包含一个限制条件(constrain)和一个优化函数(optimization function),符合限制条件的求解方案称作问题的可行解,使优化函数能取得最佳值的解决方案称作最优解贪心准则...原创 2020-12-19 14:41:43 · 744 阅读 · 0 评论 -
Dynamic Programming
Dynamic Programming基本思想问题特征算法设计的步骤基本思想动态规划算法和分治算法类似,都是讲原问题划分为若干个子问题,然后从子问题的解中的到原问题的解与分治算法不同的是,分治算法划分出的子问题要求独立,子问题的求解过程一般也没有交集;但应用动态规划算法的待求解问题,子问题之间不相互独立,这也是动态规划得以发挥优势的地方动态规划的优势在于对划分出的公共子问题,动态规划算法只对他们求解一次,相对于简单的递归算法,动态规划减少了许多不必要的计算,因此在性能上有优势;如果待求解问题不属于这原创 2020-12-19 14:39:50 · 116 阅读 · 0 评论 -
程序性能分析
程序性能程序性能空间复杂度时间复杂度空间复杂度程序所需空间组成指令空间(instruction space)数据空间(data space)环境栈空间(environment stack space)空间复杂度分析时间复杂度程序性能空间复杂度空间复杂度是指程序运行所需的内存大小①在任何一个计算机上运行程序,需要保证有足够的内存能用②不同的解决方案对内存可能有不同的要求,一般希望选择更优的方案,把更多的内存留作他用③通过对空间复杂度的分析,可以对问题的规模进行一个大致的估计时间复杂度时间复杂度原创 2020-12-19 14:40:01 · 1666 阅读 · 1 评论