1
鑑於一個Set
帶大小的如何測試一個集合包含另一至少一個值設置
而一個Set
B,其中A尺寸b
什麼是最高效的解決方案來測試b是否包含a中的至少一個值。
解決方案1:相交的複雜性是什麼?
def containsAtLeastOne[A](a:Set[A], b: Set[A]) = a.intersect(b).nonEmpty
解決方案2:O(一)在最壞的情況下
def containsAtLeastOne[A](a:Set[A], b: Set[A]) = a.exists(b.contains(_))
解決方案3:在最壞的情況下
def containsAtLeastOne[A](a:Set[A], b: Set[A]) = b.exists(a.contains(_))
回答這個問題的最好方法是基準測試。解決方案2和3也有一個lambda分派,而解決方案1是純JVM調用。 – tryx
你所有的解決方案都是'O(ab)',除了2/3的lambda以外,可能沒有真正的性能差異。 – Noah
這裏需要編輯嗎?解決方案2和3是相同的。 – jwvh