作为头衔,Brute Force,Karp-Rabin,Knutt-Morris-Pratt,Boyer Moore,......还是?而Pascal中Pos()的复杂功能是什么?
答案 0 :(得分:2)
在Delphi中,它是手工编译的汇编程序蛮力。可能在D2006和更高版本通过fastcode项目重做。在Turbo Pascal中,它也是手动编码的汇编程序,但是较旧(可能是代表scasb)
在Free Pascal上,它使用indexbyte(),这是一个与体系结构相关的原语“在内存块中搜索字节”,由双向扫描实现。
它只是扫描第一个相等的字符,所以我认为这就是你用蛮力的意思。
可以使用各种Delphi Boyer Moore实现,以防你需要搜索更大的文本,但由于他们额外的内存分配,这些通常在短字符串上得分很差。