zoukankan      html  css  js  c++  java
  • 常用字符串搜索算法介绍

    常用字符串搜索算法介绍

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

    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以获取更多信息。

  • 相关阅读:
    NYoj 素数环(深搜入门)
    深搜和广搜
    hdu 3449 (有依赖的01背包)
    hdu 1712 (分组背包入门)
    sql数据库常用语句总结
    常用工具和API的网站收集
    23种设计模式
    sql 联合查询并更新
    sql 去除重复记录
    读<你必须知道的.NET>IL指令笔记
  • 原文地址:https://www.cnblogs.com/absolute8511/p/1649605.html
Copyright © 2011-2022 走看看