0

我知道我可以通过这样的 for 循环(参见代码),我也可以以相同的方式添加到数组中,但有没有更快的方法。我不想使用任何其他 java API,因为我想练习数组。使用散列函数可以让我更快地存储变量,然后更快地找到某个单词吗?

编辑:问题是当使用 10,000+ 字时,延迟增加大于 1ms

谢谢 :)

int count = 0;
for(int i = 0; i < array.length; i++)
    if(array[i].equals(word)) 
        count++;
4

3 回答 3

1

您可以使用二维数组:

Array [Alphabet] [以该字母开头的单词]

于 2014-11-19T16:29:39.500 回答
1

您可以对数组进行预排序,然后对其使用二分法搜索。仅当您要查找许多单词时,这才有用。

如果您允许其他结构,那么您通常可以实现O(1)查找时间。

于 2014-11-19T16:30:52.197 回答
0

Whenever your processing 10,000 words you can expect some delays. Depending on what word is set to you might be able to filter a bit better but as far as your code shows that's the best way to do it.

于 2014-11-19T16:29:13.403 回答