浅析匹配算法一.docVIP

  • 4
  • 0
  • 约1.22万字
  • 约 16页
  • 2017-10-19 发布于湖北
  • 举报
一、字符串匹配 字符串匹配指的是从文本中找出给定字符串(称为模式)的一个或所有出现的位置。本文的算法一律输出全部的匹配位置。模式串在代码中用x[m]来表示,文本用y[n]来,而所有字符串都构造自一个有限集的字母表Σ,其大小为σ。 ? 根据先给出模式还是先给出文本,字符串匹配分为两类方法: ·???????? 第一类方法基于自动机或者字符串的组合特点,其实现上,通常是对模式进行预处理; ·???????? 第二类方法对文本建立索引,这也是现在搜索引擎采用的方法。 本文仅讨论第一类方法。 ? 文中的匹配算法都是基于这样一种方式来进行的:设想一个长度为m的窗口,首先窗口的左端和文本的左端对齐,把窗口中的字符与模式字符进行比较,这称为一趟比较,当这一趟比较完全匹配或者出现失配时,将窗口向右移动。重复这个过程,直到窗口的右端到达了文本的右端。这种方法我们通常叫sliding window。 ? 对于穷举法来说,找到所有匹配位置需要的时间为O(mn),基于对穷举法改进的结果,我们按照每一趟比较时的比较顺序,把这些算法分为以下四种: 1.??? 从左到右:最自然的方式,也是我们的阅读顺序 2.??? 从右到左:通常在实践中能产生最好的算法 3.??? 特殊顺序:可以达到理论上的极限 4.??? 任意顺序:这些算法跟比较顺序没关系(例如:穷举法) 一些主要算法的简单介绍如下: ? 从左到右 采用哈

文档评论(0)

1亿VIP精品文档

相关文档