我正在尝试量化两个字符串之间的差异,以便作为变化监控系统的一部分。
我的问题在于,这些字符串很大 - 我经常处理100K+字符的字符串。
我目前使用Levenshtein距离,但计算大字符串的Levenshtein距离非常低效。即使是最好的实现也只能处理O(min(mn))。
由于两个字符串长度大致相同,距离计算过程可能需要花费多秒钟的时间。
我不需要高精度。 1/1000(例如0.1%)的变化分辨率对于我的应用来说已经足够了。
有哪些更有效的字符串距离计算选项?
我的问题在于,这些字符串很大 - 我经常处理100K+字符的字符串。
我目前使用Levenshtein距离,但计算大字符串的Levenshtein距离非常低效。即使是最好的实现也只能处理O(min(mn))。
由于两个字符串长度大致相同,距离计算过程可能需要花费多秒钟的时间。
我不需要高精度。 1/1000(例如0.1%)的变化分辨率对于我的应用来说已经足够了。
有哪些更有效的字符串距离计算选项?
d
- 字符之间的差异,那么10万次迭代应该相当快。我认为您无法获得更低的时间复杂度,但是如果您使用例如Java,您可能会获得恒定的内存,这将产生更快的实际实现。 - Johan S