数算 3
2016-03-03 15:16
183 查看
字符串
顺序表示
链接表示
模式匹配问题
View Code
简单,易于理解,但是效率不高。算法运行时间是 O(m*n).
makenext 函数可以修改的更好。
顺序表示
struct SeqSting{ int MAXNUM; int n; char *c; }; typedef struct SeqString *PSeqString;
链接表示
struct StrNode; typedef strct StrNode *PStrNode; struct StrNode{ char c; PStrNode link; }; typedef struct StrNode *LinkStrNode;
模式匹配问题
makeNext(PSeqString p, int *next){ int i=0, k=-1; next[0]=-1; while (i<p->n-1){ while (k>=0&&p->c[i]!=p->c[k]) k=next[k]; i++; k++; next[i]=k; } }
View Code
简单,易于理解,但是效率不高。算法运行时间是 O(m*n).
makenext 函数可以修改的更好。
makeNext (PSeqString p, int *next){ int i=0, k=-1; next[0]=-1; while (i<p->n-1){ while (k>=0 && p->c[i]!=p->c[k]) i++;k++; if (p->c[i]==p->c[k]) next[i]=next[k]; else next[i]=k; } }
相关文章推荐
- iOS block原理研究
- 我对前端MVC的理解
- 查询当前数据库是否存在阻塞的情况
- 自定义View——DrawView
- word如何转换成pdf格式的文件
- leetcode19:Remove Nth Node From End of List
- 树莓派安装mysql并开启远程访问(开启3306端口)
- bzoj4347 Nim z utrudnieniem 动态规划
- javascript基本知识
- Ucloud发布《2015公有云安全年度报告》
- 腾讯云:揭密腾讯云金融机房硬件配置 【金融机柜-集中化高效节能】
- 关于IOS VideoToolBox的一些汇总
- Eclipse下Ctrl+Shift+F无法自动调整代码格式
- Android Download 下载功能深入研究(三) : chrome自带下载功能的研究
- Android开发-进阶:实现微信自动抢红包的程序
- 矩形覆盖问题
- css3 perspective与translateZ变换
- git版本管理工具的使用
- 传值路劲乱码
- 面向对象的多态