Sobes.tech
Middle

¿Cómo verificar más rápidamente si una colección está contenida en otra: usando un array o un conjunto?

sobes.tech AI

Respuesta de la IA

Un conjunto (Set) es más rápido para verificar la inclusión de elementos.

Explicación:

  • Array: La verificación de si un elemento está incluido en un array toma en promedio tiempo O(n), donde n es la cantidad de elementos. Para verificar si una colección está incluida en otra, se necesitan n iteraciones, cada una de las cuales es O(m), donde m es el tamaño de la segunda colección. En total, O(n*m).
  • Set: La verificación de si un elemento está incluido en un conjunto toma en promedio tiempo O(1). Para verificar si una colección está incluida en otra, se necesitan n iteraciones, cada una de las cuales es O(1). En total, O(n).

Ejemplo con un conjunto:

  1. Crear un Set de la primera colección.
  2. Iterar sobre la segunda colección, verificando cada elemento si está incluido en el Set creado.
let collection1: [Int] = [1, 2, 3, 4, 5]
let collection2: [Int] = [2, 4]

// Crear un conjunto de collection1
let set1 = Set(collection1)

// Verificar si collection2 está incluido en collection1
let isSubset = collection2.allSatisfy { set1.contains($0) }

print(isSubset) // Imprimirá true