快速字符串模糊匹配--基于Horspool的模糊匹配算法

本文介绍了Horspool算法在模糊匹配中的应用,特别是对于模式串长度小于文本串的情况。首先,概述了算法的背景知识,然后详细阐述了BPM算法的预处理步骤,包括位向量初始化和字符的二进制模式表示。接着,讨论了如何结合Horspool算法构建跳转数组以实现模糊匹配。最后,讲解了匹配检索部分,展示了如何在文本串中找出所有匹配模式串的部分。
摘要由CSDN通过智能技术生成

背景知识

这里写图片描述

BPM算法(适用于m<w的模式串)

1.预处理。

这里写图片描述

1)初始化位向量,每个位都置为0;

public void initVector(){
        size = CHAR_SIZE*p.length();
        bitArray = new int[(size-1)/BIT_LENGTH+1];
        //将位向量全部清零
        for(int i=0;i<n;++i){
            P = i/BIT_LENGTH;   
            Q = i%BIT_LENGTH;
            bitArray[P] |= 1<<(31-Q);
    }
}

2)对字符集的每一个字符计算其二进制模式表示

    /********************/
for(in
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值