gpt4 book ai didi

Delphi:高效快速的 Unicode 文本搜索

转载 作者:行者123 更新时间:2023-12-03 15:40:18 25 4
gpt4 key购买 nike

是否可以在 Unicode 文本/字符串中进行快速高效的文本搜索?我也需要搜索单词的一部分,而不仅仅是整个单词。

搜索缓冲区?

谢谢!

最佳答案

正如已经指出的,最快的方法取决于很多因素,最重要的是您是否需要能够重复搜索。第二个问题是,真正拥有“最快”的方法(而不是相当快的方法)对您来说有多重要,以及您愿意在优化上投入的时间。

重复搜索

如果您需要重复搜索,据我所知,最有效的字符串搜索方法是使用 suffix arrays (通常与 Burrows-Wheeler transforms 结合使用)。这种方法广泛应用于生物信息学中,人们经常需要在非常大的数据集(例如 here )上处理大量字符串搜索。一个非常好的后缀数组(和 BWT)库是 libdivsufsort C 库,但不幸的是我不知道这个库没有 Delphi 端口。 (我相信这个库能够处理 unicode 字符串。)

单个搜索

如果您不需要重复搜索,暴力字符串搜索算法可能会很有效,例如 Pos 等程序集优化的 FastCode 版本。然而,这些是在 Delphi 统一编码之前编写的,据我所知没有类似的优化统一编码实现。如果我今天要编写一个并希望针对现代处理器(支持 SSE4 .2 指令集)对其进行优化,我会认真研究一下 PCMPESTRI 汇编指令( reference pdf here ;另请参阅例如 here ,但我不知道该代码是否有效),它可以处理 unicode 字符串搜索所需的 2 字节字符。

关于Delphi:高效快速的 Unicode 文本搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6755560/

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