【问题标题】:javascript: fastest way finding is a string is in a set of stringjavascript:查找字符串的最快方法是在一组字符串中
【发布时间】:2015-01-14 02:36:07
【问题描述】:

我需要一种快速的方法来查找一个字符串是否在一组字符串中。

我的集合不会随时间发生太大变化,因此可以将其放入排序数组并使用二分查找(此处建议:fastest way to determine if an element is in a sorted array

但是考虑到我们在谈论 String ,使用 trie 会更快吗?如果是这样,是否有我可以使用的众所周知且受支持的实现? (在 github 上找到了一些,但似乎不支持或广泛使用)。

我也在阅读: Fast way to find if a string is in an array

这种方法有没有机会使用 trie 击败?

(我没有时间尝试实现所有方法并对其进行基准测试。)

【问题讨论】:

    标签: javascript arrays string search sorted


    【解决方案1】:

    你有 JavaScript。如果你使用 trie,它将是你自己在 JavaScript 中的实现,而哈希几乎是整个 JavaScript 构建的基础,在执行环境中被优化到地狱。我会这样做:

    var STRINGS = {
      "foo": true,
      "bar": true
    }
    
    var fooExists = STRINGS.hasOwnProperty("foo");
    

    【讨论】:

    • 也许这正是我正在寻找的答案,只是为此目的构建字典是如此违反直觉......
    • 如果它对“反直觉”位有帮助,Ruby 的 Set 和 Java 的 TreeSet 使用完全相同的方法(分别具有组合的 HashTreeMap); )
    • 是的,这确实有帮助 :) 实际上,这甚至可以解释为什么没有广泛使用的 trie 实现?
    • 我不知道,真的。对于大型数据库,我想本机 trie 将击败本机哈希(在内存或速度上,取决于分配哈希的桶数);但本机哈希击败脚本特里。但是,如果没有基准,这只是猜测。
    猜你喜欢
    • 2021-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-26
    • 2016-10-05
    • 1970-01-01
    • 2011-07-14
    • 1970-01-01
    相关资源
    最近更新 更多