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

揭阳城乡建设局网站/淘宝指数查询官网

揭阳城乡建设局网站,淘宝指数查询官网,德州建设网站,java .net做网站我们以一个非常简单的例子来开头,举例主串为abababc,模式串为abc,在我们进行匹配的时候第一次匹配的效果为 abababc ababc(在c处产生失配) 按照朴素的匹配算法,我们应该将模模式串向右移1位然后继续匹配,如图下所示…

我们以一个非常简单的例子来开头,举例主串为abababc,模式串为abc,在我们进行匹配的时候第一次匹配的效果为
abababc
ababc(在c处产生失配)
按照朴素的匹配算法,我们应该将模模式串向右移1位然后继续匹配,如图下所示情形
a bababc
 ababc(以次类推,在产生失配的时候将模式串逐步向右移位,产生最坏O(N*M)的时间复杂度)
 让我们仔细来思考第一次产生失配的情形,在i=5(i为模式串中的顺序),j=5(j为模式串中的顺序)时产生失配。
 为了使模式串尽可能的避免不必要的匹配,我们来观察模式串ababc本身的性质,我们注意到i[1]i[2]和i[3]i[4]是相同的序列,那么我们可以想到因为i[1]-i[4]已经和j[1]-j[4]匹配成功那么我们可以将模式串向右移两位使得i[1]i[2]和j[3]j[4]对应,因为j[3]j[4]是已经和i[3]i[4]匹配成功了的,所以我们可以这么做。
 但是我们为什么会直接将模式穿向右移两位呢?我们是根据i[1]i[2]和i[3]i[4]相同这一结论,由此我们想到是不是因为在i[1]i[2]和i[3]i[4]是两位匹配所以模式串就会向右移位2位呢?我们来举下一个例子,设主串为abcabcabcd,模式串为abcabcd,第一次匹配失败时情况为
 abcabcabcd
 abcabcd(d处产生失配)
 那么我们应用KMP算法,观察到在模式串中i[1]-i[3]和i[4]-i[6]相同,所以我们试着将模式串向右移动3位,此时匹配成功。
 据此我们得出结论在产生失配的时候,我们可以应用已经匹配部分的信息,直接将模式串向右移位较大的位数,来减少不必要的匹配,节省时间,由此我们引入next[]数组的概念,next[a]=k 这个表达式的意思是,当在模式串的第a个位置出产生失配时,将整个模式串向右移位k个长度,由我们在以上的举例可以知道,即i[1]-i[k]是和i[a-k+1]-i[a-1]相同的,所以我们在进行匹配之前可以先对模式串本身求出它的next数组来减少我们的任务。
 

http://www.lbrq.cn/news/748477.html

相关文章:

  • 建设境外网站/整合营销传播案例分析
  • 做期货要看哪几个网站/360营销推广
  • 鹤壁网站建设/长沙网站托管seo优化公司
  • 吉林省 网站建设/优化公司排行榜
  • 衡水购物网站制作/在百度上怎么注册网站
  • 建站新体验/百度指数三个功能模块
  • 做公司网站需要注意什么/网站优化推广怎么做
  • 白嫖二级域名/seo是啥软件
  • 建筑网360/靖江seo要多少钱
  • 网站排名推广怎么做/网络推广及销售
  • 广西免费网站制作/网页设计与制作教程
  • 潍坊网站建设托管/北京网络推广公司
  • 青海营销网站建设多少钱/国外b站推广网站
  • 重庆做网站letide/郑州seo优化推广
  • 做网站有名的公司/网站域名在哪里查询
  • 东阳海天建设集团网站/可以免费发广告的网站
  • 有谁帮做网站/长沙百度百科
  • 怎么做flash网站/十大培训机构教育培训机构哪家好
  • 做网站公司 晨旭东方/婚恋网站排名前十名
  • 武汉网站建设多少钱/广州代运营公司有哪些
  • 详细论述制作网站的步骤/神马搜索seo优化排名
  • 网络营销渠道的类型/关键词是网站seo的核心工作
  • 北京做网站的大公司/网站信息
  • 做网站赚钱/企业推广网站有哪些
  • 搜索网站建设推广优化/seo快速排名服务
  • 新乡市做网站直销系统网站/东莞网站制作外包
  • 五常市网站/专业做网站建设的公司
  • 大学网站建设招标方案/seo官网优化怎么做
  • 凡科建站小程序制作/怎么seo网站排名
  • 长沙做网站seo/中铁建设集团有限公司
  • 创建工作空间与功能包
  • Linux中聚合链路与软件网桥配置指南
  • PyCharm与前沿技术集成指南:AI开发、云原生与大数据实战
  • RAG 分块中表格填补简明示例:Markdown、HTML、Excel、Doc
  • 数据结构:二叉平衡树
  • 嵌入式硬件篇---运算放大器