以下算法的Big O复杂性是什么:
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)
答案 0 :(得分:1)
O(N * log M)
N - set1的大小,M - set2的大小
因为我们迭代set1元素(N
)
对于每次迭代,我们调用contains
方法logM
复杂度
TreeSet javadoc:
此实现为基本提供了有保证的log(n)时间成本 操作(添加,删除和包含)。