当前位置: 首页 > news >正文

建e网手机app南昌网站排名优化软件

建e网手机app,南昌网站排名优化软件,岳阳市网页设计人才网,网站建设如何设定关键字朴素的字符串匹配算法又称为暴力匹配算法(Brute Force Algorithm),最为简单的字符串匹配算法。算法简介朴素的字符串匹配算法又称为暴力匹配算法(Brute Force Algorithm),它的主要特点是:没有预…
朴素的字符串匹配算法又称为暴力匹配算法(Brute Force Algorithm),最为简单的字符串匹配算法。

算法简介

朴素的字符串匹配算法又称为暴力匹配算法(Brute Force Algorithm),它的主要特点是:
  • 没有预处理阶段;

  • 滑动窗口总是后移 1 位;

  • 对模式中的字符的比较顺序不限定,可以从前到后,也可以从后到前;

  • 匹配阶段需要 O((n - m + 1)m) 的时间复杂度;

  • 需要 2n 次的字符比较;

很显然,朴素的字符串匹配算法 NAIVE-STRING-MATCHER 是最原始的算法,它通过使用循环来检查是否在范围 n-m+1 中存在满足条件 P[1..m] = T [s + 1..s + m] 的有效位移 s。

伪代码如下:

NAIVE-STRING-MATCHER(T, P)n ← length[T]m ← length[P]for s ← 0 to n - mdoif P[1.. m]= T[s + 1.. s + m]then print "Pattern occurs with shift" s

如上图中,对于模式 P = aab 和文本 T = acaabc,将模式 P 沿着 T 从左到右滑动,逐个比较字符以判断模式 P 在文本 T 中是否存在。

可以看出,NAIVE-STRING-MATCHER 没有对模式 P 进行预处理,所以预处理的时间为 0。而匹配的时间在最坏情况下为 Θ((n-m+1)m),如果 m = [n/2],则为 Θ(n2)。

图例分析

假设有两个字符串:

  • M="abcdefabcdx";

  • T="abcdx";

想要找到T串在M串中的位置,要怎么找呢?

也就是说,从主串M的第一个字符开始分别与子串从开头进行比较,当发现不匹配时,主串回到这一轮开始的下一个字符,子串从头开始比较。直到子串所有的字符都匹配,返回所在主串中的下标。

算法复杂度

假设S的长度是m,T的长度是n,暂不考虑pos,从字符串S的开头开始比较。

  • 最好的情况是第一次就匹配了,需要比较的次数是n.

  • 最坏的情况下,就是上面举的这种例子,需要把整个字符串都比较完,从下面的代码中就体现为把两层循环都跑了一遍。这时候,比较的次数就是t*(s-t+1).

所以这个算法的(最坏)时间复杂度就是o(t(s-t+1)),近似为o(n2).

http://www.yayakq.cn/news/348560/

相关文章:

  • 江苏网站建设yijuce建设网站需要什么资料
  • 网站html模板免费下载专为中年人做的的婚恋网站
  • 重庆智能网站建设做海报创客贴同类网站
  • 禅城区网站建站网站用dw制作个介绍家乡网站
  • 有什么做外贸的网站微信开发者工具文档
  • 合作网站制作上海专业网站开发
  • 手机网站后台管理系统普通门户网站开发价格
  • 郑州网站建设报价网站建设教程
  • 发帖子的网站网站建设价格与哪些方面
  • 网站基本要素wordpress文章驳回
  • 网站开发步骤说明书做一手房用什么网站
  • 网站建设海淀网站建设新趋势
  • mvc 做网站做那种网站赚钱
  • 有哪些做问卷调查给钱的网站漂亮的php网站源码
  • 微信支付 公司网站o2o平台排名
  • 品牌网站建设联系方式做响应式的网站有哪些
  • 地方门户网站的前途saas建站平台介绍
  • 东台建设局网站网站服务器地址在哪里看
  • 各大招聘网站找人做网站网站
  • 网站设置不安全建站工具大全
  • 如何找人做网站wordpress换模版
  • 做网站网站犯法吗网站优化 价格查询
  • 怎么找合适的网站开发可以访问违规网站的浏览器
  • 济南美赞网站建设公司网站设计框架
  • 邯郸一站式网络推广欢迎咨询个人可以做网站
  • 建一个网站怎么赚钱吗个人网站有哪些类型
  • 做网站被网警找李家沱网站建设
  • 化妆品网站方案福州专业做网站的公司哪家好
  • 网站建设运营方案 团队做网站设计软件
  • 备案网站公共查询系统淮安网站建设