Rabin-Karp
2016-12-02 18:45:54 0 举报
Rabin-Karp 是一种高效的字符串匹配算法,它利用哈希函数和滑动窗口技术进行快速查找。该算法的核心思想是将文本串与模式串进行比较,通过计算哈希值来确定是否存在匹配。具体实现中,首先将文本串和模式串分别转换为哈希值,然后通过比较哈希值来判断是否存在匹配。如果存在匹配,则进一步比较字符是否相同,以确定匹配的具体情况。由于哈希函数的运算速度非常快,因此 Rabin-Karp 算法可以在较短的时间内完成大量字符串匹配操作。同时,该算法还具有较高的可扩展性,可以应用于各种不同类型的文本数据中。
作者其他创作
大纲/内容
程序结束
匹配串T的长度为M,模式串P的长度为N。(MN)
是
判断hash_P 与 hash_T是否相等
否
程序开始
t+=1
得到T字符串从t开始长度为N的子字符串的hash值,hash_T = pretreatment(t)
对两个哈希值相等的子字符串执行朴素匹配
tM-N+1
是否匹配
输出记录的子字符串位置,若无匹配的子字符串则输出T中无P的匹配
记录匹配成功的匹配串子串
得到P字符串的hash值,hash_P = pretreatment(p)
收藏
0 条评论
下一页