【发布时间】:2014-03-15 04:57:58
【问题描述】:
在 Ruby 中,我有一个由大约一百万个字符串组成的数组,称为 dictionary_array。我有另一个由大约一千个字符串组成的数组,称为arr。
对于arr 中的每个元素,我想在dictionary_array 中找到一个最接近的元素。
遍历arr 中的每个元素,并且对于arr 中的每个元素,遍历dictionary_array 中的每个元素以找到具有最小Levenshtein 距离的元素是O(n^2),对于我的目的来说太慢了.
有没有更好的方法来解决这个问题?
【问题讨论】:
-
Ruby 不是那种语言。
-
定义太慢。多久时间?你能运行一次并缓存结果吗?
-
阿奎那,这里不可能没有缓存
-
等等,你想做什么?只是有城市名称的别名吗?如果是这样,那你就太复杂了。 :)
-
换句话说,你问“有没有更好的方法来解决这个问题?”但是是的问题。您提出了a 问题的解决方案,并询问如何更有效地实施该解决方案。但是您要解决的原始问题是什么?换句话说,您正在实施的用例是什么?见:meta.stackexchange.com/questions/66377/what-is-the-xy-problem
标签: ruby algorithm levenshtein-distance fuzzy-search