详解bf算法.docx

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
详解bf算法

算法原理??BF(Brute Force)算法是普通的模式匹配算法,BF算法的思想就是将目标串S的第一个字符与模式串P的第一个字符进行匹配,若相等,则继续比较S的第二个字符和P的第二个字符;若不相等,则比较S的第二个字符和P的第一个字符,依次比较下去,直到得出最后的匹配结果。 BF算法是一种蛮力算法。????举例说明:????S:? ababcababa????P:??ababa??? BF算法匹配的步骤如下:(2)代码实现#include?stdio.h#include?string.h?int?BFMatch(char?*s,char?*p){????int?i,j;??? i =0;????while(i ?strlen(s))??? {???????j =?0;???????while(s[i] == p[j] jstrlen(p))???????{???????????i++;???????????j++;???????}? ??????if(strlen(p) == j)???????{???????????return?i -?strlen(p);???????}????????i = i - j +?1;????????????????//?指针i回溯??? }?????return?-1;}int?main(){????char?*szSource =?ababcababa;????char?*szSub =?ababa;????int?index =BFMatch(szSource, szSub);????printf(目标串包含匹配串的起始位置:%d,index);}(3)运算过程(a) i=0, j=0, s[0]==p[0];??? i=1,j=1, s[1]==p[1];??? i=2,j=2, s[2]==p[2];??? i=3,j=3, s[3]==p[3];??? i=4,j=4, s[[4]!=p[4], 第一次循环结束,i=4-4+1=1(b) i=1, j=0, s[1]!=p[0],第二次循环结束, i=1-0+1=2(c) i=2, j=0, s[2]==p[0];?? i=3, j=1, s[3]==p[1];?? i=4, j=2, s[4]!=p[2]; 第三次循环结束,i=4-2+1=3(d) i=3, j=0, s[3]!=p[0];第四次循环结束,i=3-0+1=4(e) i=4, j=0, s[4]!=p[0];第四次循环结束,i=4-0+1=5(f) i=5, j=0, s[5]==p[0];?? i=6, j=1; s[6]==p[1];?? i=7, j=2, s[7]==p[2];?? i=8, j=3, s[8]==p[3];?? i=9, j=4, s[9]==p[4];?? i=10, j=5, j==strlen(p), 最后一次循环结束,返回i-strlen(p) = 5?(4)运行结果目标串包含匹配串的起始位置:5

文档评论(0)

asd522513656 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档