字符串模式匹配-BF算法的缺点

BF算法的缺点

         第2,3,4,5次的比较是纯属浪费时间,因为肯定不相等。
        因为原本对应的abcde是相等的,现在进行第二次比较的时候回到主串的第2个位置开始比较下去,肯定是不相等的。

        因为BF算法对我们在字符比较失败之前的比对成功的字符信息没有存储,每次就是回退到原来比较的位置上后一个位置开始重新比较。
        我们应该在第1步比较失败后,不应该动i,主串位置不动,让子串跳到第6步比较的位置开始比较。

 再看一个例子:

在这里插入图片描述

在这里插入图片描述

比较失败,把j重置为2 

在这里插入图片描述

x的前缀:

在这里插入图片描述

给出这么一个范围:

在这里插入图片描述

x的前面字符串的前后缀位置关系:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

求出:前后缀的长度是2 k=2

        所以当d和x比对失败后,此时i不变,然后就是把子串中j=k=2的字符后移到当前比对失败的x的位置上。

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值