TreeSet算法的交集的BigO复杂度是多少?

时间:2013-11-28 13:42:52

标签: java complexity-theory

以下算法的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)

1 个答案:

答案 0 :(得分:1)

O(N * log M)

N - set1的大小,M - set2的大小

因为我们迭代set1元素(N) 对于每次迭代,我们调用contains方法logM复杂度

TreeSet javadoc:

  

此实现为基本提供了有保证的log(n)时间成本   操作(添加,删除和包含)。

相关问题