算法设计与分析
szuhuanggang
这个作者很懒,什么都没留下…
展开
-
分治法
分治法的具体例子:目录二分检索(二分查找)归并排序快速排序汉诺塔问题最大子数组问题矩阵乘法(Strassen矩阵乘法)芯片测试幂乘算法大整数乘法选择问题:选第k大/小的元素信号平滑处理:傅里叶快速变换计算集合:平面点集的凸包问题最近点对问题 二分检索(二分查找) 在有序数组A[1..n]中查找元素x蛮力法:Θ(n)分治法:Θ...原创 2018-10-24 21:34:41 · 192 阅读 · 0 评论 -
动态规划(Dynamic Programming)
一个问题想要使用动态规划来解决,就必须满足以下条件:优化原则(最优子结构性质):一个最优决策序列的任何子序列本身,一定是相对于子序列的初始和结束状态的最优决策序列。在满足优化原则的情况下,依赖关系 + 约束条件(+初始条件) -> 目标函数的最值动态规划设计要素:1. 问题建模,优化的目标函数是什么?约束条件是什么?2. 如何划分子问题(边界)?3. 问题的优化函数值与...原创 2018-10-24 21:58:29 · 229 阅读 · 0 评论 -
回溯法
回溯法有通用解题法之称,它可以系统的搜索一个问题的所有解或者任意解。它在问题的解空间树中,按深度优先策略从根节点出发搜索解空间树,算法搜索至解空间树的任意一个结点时,先判断该节点如(子树)是否包含问题的解,如果肯定不包含,则跳过对其子树的搜索,逐层向其根节点回溯。否则,则按照深度优先的策略搜索子树。 当回溯到根,且根节点的所有子树都已被搜索遍才结束。这种以深度优先方式...原创 2018-11-02 08:52:18 · 175 阅读 · 0 评论 -
图
图LEDA(library of efficient data types and algorithms)Boost图库(Boost Graph Library, BGL)注:讨论的图不含平行边和环。存储邻接矩阵(Adjacent Matrix)邻接表遍历BFS:树的层次遍历的推广DFS:树的前序遍历的推广生成树注:针对无向连通图,有向强连通图。不然生成的就是多棵树了。...原创 2018-11-12 16:47:33 · 99 阅读 · 0 评论 -
并查集
并查集,在一些有N个元素的集合应用问题中,我们通常是在开始时让每个元素构成一个单元素的集合,然后按一定顺序将属于同一组的元素所在的集合合并,其间要反复查找一个元素在哪个集合中。 并查集是一种树型的数据结构,用于处理一些不相交集合(Disjoint Sets)的合并及查询问题。常常在使用中以森林来表示。...原创 2018-11-15 12:59:21 · 82 阅读 · 0 评论