【发布时间】:2010-12-23 11:24:58
【问题描述】:
我正在尝试实现平面扫描算法,为此我需要知道java.util.HashMap class' keySet() 方法的时间复杂度。我怀疑它是 O(n log n)。我说的对吗?
澄清点:我说的是keySet()方法的时间复杂度;遍历返回的 Set 显然需要 O(n) 时间。
【问题讨论】:
-
我不认为遍历集合需要'明显' O(n) 时间。该集合可能不会实际生成。它可能只是一个可用于迭代的对象。而且,这里的 n 是什么?物品还是水桶?
-
这里 n 是哈希图中的条目数。如果集合有 n 个元素,要迭代 n 个元素的集合,时间复杂度将为 O(n)。
标签: java algorithm hashmap complexity-theory