1 / 20
文档名称:

串匹配BM算法、KMP算法、BF算法.docx

格式:docx   大小:364KB   页数:20页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

串匹配BM算法、KMP算法、BF算法.docx

上传人:mazhuangzi1 2022/8/4 文件大小:364 KB

下载得到文件列表

串匹配BM算法、KMP算法、BF算法.docx

相关文档

文档介绍

文档介绍:实验报告一串匹配问题
班级:_计算机师_ 学号:2姓名:

算法描述(对算法主要部分进行伪代码描述或画出流程图)

s

Y
N
Y
N
j^oil
SpI^TQl
(给出测试数据以及程序运行结果,并进行比
模式丁长
五、实验结果与结论
BM
5
HDIST(T,S
O^a
0-^b
0-^z
模式T长
得出自己的结论)
设计思想:设文本串「模式串为P。首先将T与P进行左对齐,然 后 进行从右向左比较,若是某趟比较不匹配时, BM 算法就采用两条启发式 规 则,即坏字符规则和好后缀规则,来计算模式串向右移动的距离,直到整 个匹 配过程的结束。
BE 算法:
#i nclude <>
#i nclude <stri >
#in elude vconi >
mai n()
{
char s[100];
char t[100];
int i,a,b,m, n;
prin tf("*****please in put a stri ng:"); sca nf("%s",s);
prin tf("please in put search stri ng:"); sca nf("%s",t);
m=strle n(s); n=strle n( t);
printf( "******* BF* *******、n") for(i=0;i<m;i++)
{
b=0;
a=i;
while(s[a]==t[b]&&b!=n)
{
a++;
b++;
if(b== n)
{
prin tf("success!\n"); return 0;
}
printf("no found!:%s\n\n",&t); retur n 0;
}
^C: \Docu>ents and Settin<sXAd*inistrat面'Dslm.'ZT•■理
*****please input a string:123456789 please input search stj*ing:2345&78 JCXK X X Ulf J)F HXXXJfXKW success ?
Press any key to continue
#in clude <>
#in elude vstri >
#in elude vconi > main ()
{{
char s[100]; char t[100]; int i,a,b,m, n;
prin tf( "*****piease in put a stri ng:");
sea nf("%s",s);
prin tf("please in put search stri ng:");
sea nf("%s",t);
m=strle n( s);
n=strle n(t);
printf(
\\ *******
KMP
* *******
n")
for(a=0;a<=m-n; a++)
{
b=0;
while(s [a]==t[b]&&b!=n)
{
a++;
b++;
if(b== n)
pr in tf("success!\n");
return 0;
}
else
{
b=b+1;
a=a-b;
}
if(b=-1)
{b++;}
else return 0;
}
printf("no found!:%s\n\n",&t);
return 0;
TV
BM算法
^include <iostream>
using namespace std;
Winclude <>
pnelude <>
static int time=O
int dist(char ch,char *T)
t1=strlen(T)
for(int i=0;i<t1-1;i++)
int k=-1J1
Fl i
EQ .
//dist 函数
\DocwieBt3 ^nd Set
Lease input a string:1234 lease input search &trin^:1234
if(ch==T[i]&&i <t1) k=i+1;