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:
- Crear un
Setde la primera colección. - Iterar sobre la segunda colección, verificando cada elemento si está incluido en el
Setcreado.
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