【发布时间】:2014-05-27 11:41:18
【问题描述】:
我想知道在String 数组中检查单词是否存在的最快方法/算法是什么。例如,如果我有一个包含 10,000 个元素的字符串数组,我想知道它是否包含“人类”一词。我可以对数组进行排序,没问题。
但是,二进制搜索 (Arrays.binarySearch()) 是不允许的。 HashSet、HashMap 和 ArrayList 等其他集合类型也是不允许的。
是否有任何经过验证的算法?还是有什么其他方法?搜索的方式应该非常非常快。
【问题讨论】:
-
是不允许二分搜索,还是仅仅使用它的库实现?同样,您是否可以滚动自己的散列数据结构?
-
@PatriciaShanahan:嗨,你是说 HashMap 吗?
-
@PatriciaShanahan:我的话已经散列了。这意味着,我有 3 个字符的格式。例如,单词“astronaut”将是“!2#”
-
不,我的意思是自己实现一个散列数据结构,而不依赖于现有的库实现。
标签: java arrays string performance algorithm