利维奥·科鲁西 模式匹配算法的正确性和效率。 (英语) Zbl 0738.68034号 Inf.计算。 95,第2期,225-251(1991). 小结:利用程序的正确性证明作为设计高效算法的工具,得到了几行模式匹配算法。新算法是从蛮力算法经过三个细化步骤得到的。第一步是Knuth、Morris和Pratt算法,该算法在最坏情况下执行字符比较,在平均情况下执行(1+alpha)比较。另外两个步骤提供了一个更快的算法,在最坏的情况下可以执行\(1.5n\)个字符的比较,并且对于所有模式,该算法在随机文本上都是次线性的。此外,这些边界小于Boyer和Moore算法的相应边界,因为在最坏的情况下,Boyer and Moore方法执行的字符比较多于2n个,并且因为存在一些模式需要对随机文本进行多于个字符的比较。然而,如果我们考虑给定长度的所有模式的平均值,那么对于随机文本,Boyer和Moore算法也是次线性的,模式越长,性能越好。 引用于1审查引用于11文件 MSC公司: 68宽10 计算机科学中的并行算法 65年第68季度 算法和问题复杂性分析 60年第68季度 规范和验证(程序逻辑、模型检查等) 关键词:Knuth、Morris和Pratt的算法;最坏情况;程序正确性;程序效率;程序的形式验证;霍尔公理语义;正确性证明;程序开发 PDF格式BibTeX公司 XML格式引用 \textit{L.Colussi},Inf.计算。95,第2号,225--251(1991;Zbl 0738.68034) 全文: 内政部 参考文献: [1] Alagić,S。;Arbib,M.A.,(《井结构和正确程序的设计》(1978),Springer-Verlag:Springer-Verlag纽约)·Zbl 0393.68005号 [2] 博伊尔,R.S。;Moore,J.S.,《快速字符串搜索算法》,通信ACM,20762(1977)·Zbl 1219.68165号 [3] Colussi,L.,《递归作为程序开发的有效步骤》,ACM Trans。程序设计语言系统,6,55(1984)·Zbl 0522.68016号 [4] DeBakker,J.W.,(程序正确性的数学理论(1980),普伦蒂斯·霍尔:普伦蒂斯霍尔·恩格尔伍德·克利夫斯,新泽西州)·Zbl 0452.68011号 [5] Dukstra,E.W.(编程学科(1976),普伦蒂斯·霍尔:普伦蒂斯霍尔·恩格尔伍德·克利夫斯,新泽西州)·Zbl 0368.68005号 [6] 加利尔,Z。;Seiferas,J.,在快速字符串匹配中节省空间,SIAM J.Compute。,9, 417 (1980) ·兹比尔0446.68041 [7] Guibas,L.J。;Odlyzko,A.M.,Boyer-Moore字符串搜索算法的一种新的线性表示,SIAM J.Compute。,9, 672 (1980) ·Zbl 0446.68050号 [8] 霍尔,C.A.R。;Wirth,N.,编程语言PASCAL的公理化定义,Acta Inform。,2, 335 (1973) ·Zbl 0261.68040号 [9] 克努思,D.E。;莫里斯,J.H。;Pratt,V.B.,《字符串中的快速模式匹配》,SIAM J.Compute。,6, 323 (1977) ·Zbl 0372.68005号 此参考列表基于出版商或数字数学图书馆提供的信息。其项与zbMATH标识符进行启发式匹配,可能包含数据转换错误。在某些情况下,zbMATH Open的数据对这些数据进行了补充/增强。这试图尽可能准确地反映原始论文中列出的参考文献,而不要求完整或完全匹配。