
算法
文章平均质量分 59
搏风雨
倘若不坚强,懦弱给谁看。
展开
-
KMP算法详解
KMP算法,是由Knuth,Morris,Pratt共同提出的模式匹配算法,其对于任何模式和目标序列,都可以在线性时间内完成匹配查找,而不会发生退化,是一个非常优秀的模式匹配算法。但是相较于其他模式匹配算法,该算法晦涩难懂,第一次接触该算法的读者往往会看得一头雾水,主要原因是KMP算法在构造跳转表next过程中进行了多个层面的优化和抽象,使得KMP算法进行模式匹配的原理显得不那么直白。本文希望能够转载 2014-07-24 09:33:59 · 458 阅读 · 0 评论 -
BM算法详解
1977年,Robert S.Boyer和J Strother Moore提出了另一种在O(n)时间复杂度内,完成字符串匹配的算法,其在绝大多数场合的性能表现,比KMP算法还要出色,下面我们就来详细了解一下这一出色的单模式匹配算法,在此之前推荐读者读一下我的另一篇文章《KMP算法详解》,对于透彻理解BM算法大有裨益。在讲解Boyer-Moore算法之前,我们还是要提一提KMP算法的老例子,转载 2014-07-24 09:34:53 · 564 阅读 · 0 评论 -
求next数组代码
#includeusing namespace std;int main(){ int i,j; int next[10]; char t[100]; for(i=1;i<=8;i++) cin>>t[i]; i=1; next[1]=0; j=0; while(i<=8) { if(j==0 ||t[i]==t[j]) { i++; j+原创 2014-07-29 17:42:18 · 1326 阅读 · 0 评论 -
并查集
int get_par(int u){ if(par[a]!=a) par[a]=get_par(par[a]); return par[a];}void merge(int a,int b){ par[get_par(a)]=get_par(b);}原创 2014-07-30 11:43:14 · 473 阅读 · 0 评论 -
kmp算法代码
#include#include#includeusing namespace std;const int maxsize=100;void getnext(string t,int next[]){int j,k;j=0; k=-1; next[0]=-1;while(j{if(k==-1 ||t[j]==t[k]){j++;k++;nex原创 2014-07-30 10:41:55 · 565 阅读 · 0 评论 -
背包九讲
背包九讲目录(?)[+]【转】背包九讲-dd_engi-第一部分 (2012-03-24 23:26:49)转载▼标签: 背包 动态规划 空间复杂度 物品 杂谈分类: mass转载:dd_engi 的背包九讲目录第一讲 01转载 2014-09-25 20:34:32 · 654 阅读 · 0 评论 -
字典树
代码:#includeusing namespace std;#define MAX 26struct Trie { Trie *next[MAX]; int v; //根据需要变化}; Trie *root=new Trie;char str[20];void createTrie(char *str){ int len原创 2014-10-13 21:23:13 · 464 阅读 · 0 评论 -
匈牙利算法
模板:原创 2014-11-08 10:47:45 · 515 阅读 · 0 评论