0

我在发布之前搜索了这个,但我找不到对我有帮助的东西。我正在使用java。我有一个 300.000 字的文件(已经按字母顺序排序)。我想将这些单词加载到结构中并搜索我要传递的单词是否存在。我想要最适合字符串搜索的东西。我已经看到过尝试(后缀树)和红黑树(TreeSet - 因为我只想要键,而没有值 - 在 java 中)。

如果您考虑回答,请对您的提议的效率提供一些解释。谢谢你。

编辑 结构将通过加载文件创建,不会再添加单词。不需要区分大小写。我不知道什么是词干。我现在知道了,但我不知道它是否会有所帮助。该文件是一本字典(没有翻译,只有给定语言的单词)。

4

1 回答 1

2

哈希将是您的最佳解决方案。它以与树集相对的恒定时间进行搜索,即 log(n) 时间。

如果您在创建时声明集合足够大,您也可以在恒定时间内存储。

http://docs.oracle.com/javase/6/docs/api/java/util/HashMap.html

创建将及时: n ,并且您需要将排序集包含在单独的结构中。

这是一种针对搜索重复项而不是内存或添加数据而优化的解决方案。

于 2013-04-27T18:52:55.083 回答