算法
dddddz
多多指教
展开
-
一种新的全排列生成算法
一种新的全排列生成算法 算法原理: 对集合S={a1,a2,...,an},假设已经知道前n-1个元的全排列,那么,这n个元素的全排列{p1,p2,...,p(n-1)!},可以这样生成 :用各种可能将an插入pi中,由此,得到集合S的全排列。 为什么这样操作能得到集合S的全排列?因为每个pi的可能插入位置为n个,因此总数是n!,而且由于每个p转载 2013-01-06 11:31:29 · 527 阅读 · 0 评论 -
关节点算法
所谓关节点就是在一个连通图中删除某个顶点及其附属的边,原图变为非连通图。从任一点出发深度优先遍历得到优先生成树,对于树中任一顶点V而言,其孩子节点为邻接点。由深度优先生成树可得出两类关节点的特性: (1)若生成树的根有两棵或两棵以上的子树,则此根顶点必为关节点。因为图中不存在连接不同子树顶点的边,若删除此节点,则树便成为森林。 (2)若生成树中某个非叶子节点V,其某棵子树与转载 2013-01-06 11:33:43 · 1501 阅读 · 0 评论 -
最长公共子序列
下面的文字来自于网络,最后给出引用位置。 一、动态规划算法 事实上,最长公共子序列问题也有最优子结构性质。 记: Xi = 即X序列的前i个字符(1 Yj = 即Y序列的前j个字符(1 假定Z = 是LCS(X,Y)中的一个。 ·若xm = yn(最后一个字符相同),则不难用反转载 2013-01-08 16:22:06 · 800 阅读 · 0 评论 -
动态规划——矩阵连乘的问题
本文转自:http://www.cnblogs.com/liushang0419/archive/2011/04/27/2030970.html《问题的引出》看下面一个例子,计算三个矩阵连乘{A1,A2,A3};维数分别为10*100 , 100*5 , 5*50按此顺序计算需要的次数((A1*A2)*A3):10X100X5+10X5X50=7500次按此顺序计算需要的次数(转载 2013-01-08 14:18:47 · 573 阅读 · 0 评论 -
几个常见的压缩算法(转)
(一) 字典算法字典算法是最为简单的压缩算法之一。它是把文本中出现频率比较多的单词或词汇组合做成一个对应的字典列表,并用特殊代码来表示这个单词或词汇。例如:有字典列表:00=Chinese01=People02=China源文本:I am a Chinese people,I am from China 压缩后的编码为:I am a 00 01,I am from 02。压转载 2013-10-30 21:08:04 · 1927 阅读 · 0 评论 -
分治法求最近点对问题
1)算法描述:已知集合S中有n个点,分治法的思想就是将S进行拆分,分为2部分求最近点对。算法每次选择一条垂线L,将S拆分左右两部分为SL和SR,L一般取点集S中所有点的中间点的x坐标来划分,这样可以保证SL和SR中的点数目各为n/2,(否则以其他方式划分S,有可能导致SL和SR中点数目一个为1,一个为n-1,不利于算法效率,要尽量保持树的平衡性)依次找出这两部分中的最小点对距离:δ转载 2013-10-31 19:16:27 · 6079 阅读 · 0 评论