¿Puede alguien decirme la complejidad del tiempo del código siguiente?Complejidad del tiempo del conjunto en Java
a
es una matriz de int.
Set<Integer> set = new HashSet<Integer>();
for (int i = 0; i < a.length; i++) {
if (set.contains(arr[i])) {
System.out.println("Hello");
}
set.add(arr[i]);
}
creo que es O (n), pero no estoy seguro ya que está utilizando Set
y esto contiene métodos también. También está llamando al método add
de set
.
¿Alguien puede confirmar y explicar cuál es la complejidad temporal de todo el código anterior? Además, ¿cuánto espacio tomaría?
¿Cómo la complejidad del espacio es 2n en el caso de los enteros? No lo entendí ¿Puedes explicarlo en breve? – anon
Eso es interesante. Pensaba inicialmente la complejidad de tiempo sería O (a.len) * O (arr.len), es decir O (n^2). Es bueno saber que el HashSet en realidad es muy útil. –