摘要: 前一阵子为了准备暑期实习笔试、面试,把维基上查到的常用的排序算法全写了一遍。基本是按照算法导论和维基上面的思路写的,有些算法的细节可能和一些书上有出入,但是思想是一样的。cpp文件在最后,代码如下:#include<stdio.h>#include<stdlib.h>#include<string>#include<math.h>#include<deque>using namespace std;#define SIZE 1000#define MIN -65536#define rm(x) (x>>1)#define 阅读全文
posted @ 2013-05-13 21:08 handspeaker 阅读(481) 评论(0) 推荐(0) 编辑
摘要: KMP是经典的字符串匹配算法,时间复杂度为o(m+n)KMP原理(待补充)前一阵子自己试着写了一下,代码如下:/**KMP算法实现*包含两部分:1.模式串前缀函数的计算(预处理)* 2.文本与模式串的匹配**模式串前缀函数的计算(预处理):*假设模式串的长度为len,通过计算模式串从1到len为止的所有子串的*最大前缀长度,来填充前缀数组。这个前缀满足这种特性:是这个子串的*真后缀,而且是这个子串的真前缀(即不为子串本身),能满足以上两者*的最大的那个串,取其长度。例如:abcabc,其中abc既是这个子串的后缀,*也是这个子串的前缀,并且是最长的,所以其前缀函数值为3.**计算所有子串... 阅读全文
posted @ 2013-05-13 20:59 handspeaker 阅读(754) 评论(0) 推荐(0) 编辑