武汉PHP培训
达内武汉民大中心

18062071755

热门课程

武汉PHP培训丨C和C++文本搜索中的精确匹配算法

  • 时间:2018-01-31 16:56
  • 发布:武汉PHP培训
  • 来源:互联网

    在文本内容中,都是以字符串的方式来表示,此时要精确搜索文本中是否存在目标文本,也即是搜索在大字符串中搜索目标字符串.这种精确匹配在计算机系统中有着较为广泛的应用,如文本编辑,拼写检查,情报搜索,互联网搜索等.
    较为常见的字符串精确匹配算法有以下几种:
    1,BF算法
    BF即英文Brute Force 算法是算法模式匹配中最简单,最直观的算法.该算法的基本思想是从主字符串T(t0,t1,t2,t3,….tn-1)中的第m个字符起和目标第1个字符比较,如果相等,则继续逐个比较后续字符;比较过程中一旦发现不相等,则回溯到源字符串的m+1个字符,重新匹配,依次类推,知道目标字符串每个字符和源字符串的一个连续的字符序列相等,就匹配成功,否则匹配失败.
    2,MP算法
    MP算法是对BF算法的极大改进,利用了已经得到的并且存贮的比较结果,在后续比较过程中直接调用这些比较结果,大大的提高了算法的效率.在MP算法中,,最为关键的是寻找匹配失效函数,而一旦目标字符串给定,不管源字符串的取值如何,失效函数均为同一个,也即是失效函数与源字符串无关.
    下面给出目标字符串的失效函数C语言代码实现方法:
    voidpreMP(const char *dest, intm,intmpnext[])
    {
    inti, j;
    i=0;
    j=mpnext[0]=-1;
    while(i<m)
    {
    while(j>-1 && x[i]!=x[j])
    j=mpnext[j];
    mpnext[++i]=++j;
    }

    }

武汉PHP培训

    其中函数的参数说明如下:
    dest:目标字符串
    m:目标字符串的长度
    mpnext:用来存贮失效发生时下一轮比较的目标字符串的起始比较位置.

    本篇文章是由武汉PHP培训为您呈现,希望给您带来更多更好的文章,喜欢的朋友们可以添加微信公众号.

更多武汉PHP培训相关咨询,请扫描下方二维码

武汉PHP培训

马上预约七天免费试听课

姓名:

电话:

上一篇:武汉PHP培训丨C++永远都不会消亡
下一篇:武汉PHP培训丨C++ 异常处理

达内与广西城市职业学院(本科)携手签约,共同培育技术技能型人才!

2018百度品牌数字资产榜揭晓,达内教育、可口可乐、海尔等上榜

校企融合达内携手宁夏财经职业技术学院联合培养高质量技能型人才

达内与浙江广厦建设职业技术学院携手签约,共建达内学院!

选择城市和中心
贵州省

广西省

海南省

有位老师想和您聊一聊