常用字符串搜索算法介绍

常用字符串搜索算法介绍

字符串搜索或匹配是经常用到的技术,因此也发展了多个算法,介绍几个著名的算法。

1.单模式匹配

就是在一些文本中查找某一个子字符串的算法,效率较高的有以下几种。

KMP算法:全称Knuth-Morris-Pratt算法 预处理时间Θ(m) 匹配搜索时间 Θ(n)

BM算法:全称Boyer-Moore string search algorithm 预处理时间Θ(m + |Σ|) 匹配搜索时间Ω(n/m), O(n)

2. 有限模式集合匹配

就是在字符串中查找多个子字符串的算法,常用于查找字典中的单词和一些脏字匹配算法

Aho-Corasick算法:这是一种字典匹配算法,它用于在输入文本中查找字典中的字符串。时间复杂度是线性的。

基本原理:该算法利用类似后缀树的方法构造一个trie结构,匹配时利用该结构来搜索。


Commentz-Walter 算法:详细未知

Rabin-Karp string search算法:该算法最差复杂度不好,因此运用的并不广泛。

以上资料来源于维基百科,感兴趣的可以搜索维基百科词条String searching algorithm以获取更多信息。

转载于:https://www.cnblogs.com/absolute8511/archive/2009/02/26/1649605.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值