算法学习
文章平均质量分 75
cogbee
苦B的娃。。。
展开
-
匈牙利算法的学习
匈牙利算法基本概念:1、 交错路:设P是图G的一条路,如果P的任意两条相邻的边一条是属于匹配M的,另外一条不属于匹配M,就称P是一条交错路。2、 可增广路:两个端点都是非饱和点的交错路叫做可增广路。3、 非饱和点:设Vi是图G的一个顶点,如果Vi 不与任意一条属于匹配M的边相关联,就称Vi 是一个非饱和点。算法:1、 首先假设二分图两部分一部分顶点为,另外一部分顶点为。从出原创 2012-12-03 17:08:32 · 1064 阅读 · 0 评论 -
关于Sunday算法以及实现
今天一早开始学习了Sunday算法。比BM算法要简单易懂,而且网上也说了这个效率比BM还要高(具体怎么样我不知道,没有测试过)。Sunday算法是Daniel M.Sunday于1990年提出的一种比BM算法搜索速度更快的算法。string: d g j h o l p k j h s i j w a v n m..........pattern: j h h i如原创 2012-12-27 14:15:43 · 7866 阅读 · 1 评论 -
关于BM算法
前面学习了sunday算法,BM算法也是跟sunday算法有相似之处。BM算法有3个关键点,如果这三个关键点都理解了,那么这个算法就不是难题了。1、从右向左匹配。顾名思义,就是从最后一个字符开始向前匹配。例如string: j k l i p j h d a b c z m w i j h d .....pattern: w i j h我们开始时看第四个位置o与pa原创 2012-12-27 15:07:34 · 1410 阅读 · 0 评论 -
最大子串问题以及代码
1、最大子串问题描述:给定一个指定长度的整型数组A,求其中和最大的子串。网上有很多算法,穷举、分治、线性回归。我觉得有点麻烦。2、算法一个数组A,要找其中最大的子串,我们可以从第一个数A[0]开始,往后累加存放和在currentSum里面,如果currentSum小于0了,我们可以抛弃,不再往后累加了,(因为是负数了,往后累加肯定不是最大了)。然后保存前面我们累加的最大子串。然后从原创 2013-03-24 17:11:21 · 807 阅读 · 0 评论 -
磁盘排序(编程珠玑第一章)
原文地址:http://www.cnblogs.com/sooner/archive/2013/03/06/2946953.html“设计者确定其设计已经达到了完美的标准不是不能再添加任何问题,而是不能再减少任何问题”,程序员应该以此为标准。。。怎样给一个磁盘文件排序?问题描述:输入:一个最多含有n个不相同的正整数的文件,其中每个数都小于等于n,且n=10^7。输出转载 2013-08-31 15:31:49 · 919 阅读 · 0 评论 -
堆排序C++算法
/*堆排序*/#include #define MAX 11//initializationint a[MAX] = {3,6,2,7,9,1,56,78,23,55,11}; int heapBuild(int *a,int i,int n){//如果heap位置小于1,就表示结束if(i return 0;int max;//2i >原创 2013-11-24 09:58:03 · 787 阅读 · 0 评论