【发布时间】:2013-12-14 14:04:57
【问题描述】:
以下算法的 BigO 复杂度是多少:
boolean intersection(TreeSet<?> set1, TreeSet<?> set1){
if(set1.size() > set2.size()){
return intersection(set2, set1);
}
for (Object e: set1){
if(set2.contains(e)) return true;
}
return false;
}
更新:
N:=set1.size()
K:=set2.size()
可能的答案: O(N*K) 或 O(N*log(K)) 或 O(K*log(N)) 或 O(N+K)
【问题讨论】:
-
这些树集是否已排序和平衡?
-
@arturgrzesiak TreeSet 已排序
-
你的猜测是什么?我们没有得到作业成绩...
-
应该是
O(n * log k),如果您使用“双指针”方法,您可以在O(n)中执行。也许您想查找两个排序集的交集。 -
这个问题属于cs.stackexchange.com