×

模式匹配算法的正确性和效率。 (英语) Zbl 0738.68034号

小结:利用程序的正确性证明作为设计高效算法的工具,得到了几行模式匹配算法。新算法是从蛮力算法经过三个细化步骤得到的。第一步是Knuth、Morris和Pratt算法,该算法在最坏情况下执行字符比较,在平均情况下执行(1+alpha)比较。另外两个步骤提供了一个更快的算法,在最坏的情况下可以执行\(1.5n\)个字符的比较,并且对于所有模式,该算法在随机文本上都是次线性的。此外,这些边界小于Boyer和Moore算法的相应边界,因为在最坏的情况下,Boyer and Moore方法执行的字符比较多于2n个,并且因为存在一些模式需要对随机文本进行多于个字符的比较。然而,如果我们考虑给定长度的所有模式的平均值,那么对于随机文本,Boyer和Moore算法也是次线性的,模式越长,性能越好。

MSC公司:

68宽10 计算机科学中的并行算法
65年第68季度 算法和问题复杂性分析
60年第68季度 规范和验证(程序逻辑、模型检查等)
PDF格式BibTeX公司 XML格式引用
全文: 内政部

参考文献:

[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的数据对这些数据进行了补充/增强。这试图尽可能准确地反映原始论文中列出的参考文献,而不要求完整或完全匹配。