算法原理
文章平均质量分 63
兔子大天使
我总是在对的时间做错误的事情。
我可以放弃一切,除了你
展开
-
匈牙利算法
http://wapedia.mobi/zh/%E5%8C%88%E7%89%99%E5%88%A9%E7%AE%97%E6%B3%95匈牙利算法匈牙利算法是众多用于解决线性任务分配问题的算法之一,是用来解决二分图最大匹配问题的经典算法,可以在多项式时间内解决问题,由匈牙利数学家Jack Edmonds于1965年提出。目录:1. 问题简介2. 算法描述3. 时间空间复杂度1. 问题简介设G=(V,E)是一个无向图。如顶点集V可分割为两个互不相交的子集V1,V2之并,并且图中每条边依附的两个顶点转载 2010-12-08 16:07:00 · 939 阅读 · 0 评论 -
整数分解成连续整数之和的方法
<br /> <br />定理:一个数如果可以表示成为连续的正整数之和的形式,则必定包含大于1的奇因子<br /> <br />证明:如果一个数m可以表示成为 a+(a+1)+,...,+(a+k)<br /> 则m=(a+a+k)*(k+1)/2;因为 a+a+k-k-1=2*a-1为奇数,所以m必然包含一个奇因子。<br /> <br />表示法:对于每一个正整数,可以表示成为(奇因子个数)个连续整数的表示。对于每一个奇因子2*k+1,都可以表示成为m=(2*k+1)*n的形式,则m可以原创 2011-05-31 16:04:00 · 2589 阅读 · 0 评论 -
KMP 字符串匹配算法
KMP算法是一种线性时间字符串匹配算法,这个算法不用计算变迁函数,匹配时间为O(n),只用到了辅助函数π,这是在O(m)的时间内根据模式预先计算出来的。 模式的前缀函数π包含有模式与自身的位移进行匹配的信息。简单的来说,如果字符串中某前缀的后缀包含了某前缀,则在比较的时候能够免去对无用位移进行测试。 简单的用java代码实现如下所示package algorithmTraining;public class KMP { public static void ma原创 2011-05-07 21:19:00 · 575 阅读 · 0 评论 -
Raney引理
Raney引理: 设整数序列A={Ai,i=1,2,...,N},且部分和为Sk=A1+,...,+Ak,序列中的所有的数字之和为Sn=1; 则在A的N个循环表示中,有且仅有一个序列B,满足B的任意部分和Si均大于零。证明: 由于Sn=1,则Sk+Sn=Sk+1,存在这样一个数x,当在x和x+1之间的某点过后,其后所有的点都在0以上。 用几何图形来说明就是,用两条线夹住Si的曲线,在每连续N个单位的长度中,直线与函数图像有且仅有一个交点。因为斜率为1/N,原创 2011-05-09 10:53:00 · 2646 阅读 · 0 评论