gpt4 book ai didi

algorithm - Pascal 中的 Pos() 函数使用什么算法?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:59:23 24 4
gpt4 key购买 nike

作为标题,Brute Force、Karp-Rabin、Knuth-Morris-Pratt、Boyer Moore,……还是其他? Pascal 中的 Pos() 函数有多复杂?

最佳答案

在 Delphi 中,它是手工编码的汇编程序暴力破解。可能在 D2006 及更高版本中由 fastcode 项目重做。在 Turbo Pascal 中,它也是手工编码的汇编程序,但更旧(可能是 rep scasb)

在 Free Pascal 上,它使用 indexbyte(),这是一个依赖于架构的原语“在内存块中搜索字节”,通过双字扫描实现。

IOW 它只是扫描第一个相等的字符,所以我假设这就是您所说的蛮力。

可以使用各种 Delphi Boyer Moore 实现,以防您必须搜索较大的文本,但由于它们的额外内存分配,这些实现通常在短字符串上表现不佳。

(2020-06-04 在引用此主题的 Lazarus 论坛帖子之后:

同时有一个BMH implementation in the RTL)

关于algorithm - Pascal 中的 Pos() 函数使用什么算法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25965841/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com