Sobes.tech
Middle

Cum să verifici mai rapid dacă o colecție este inclusă în alta: folosind un array sau un set?

sobes.tech AI

Răspuns de la AI

Un set (Set) este mai rapid pentru verificarea includerii elementelor.

Explicație:

  • Array: Verificarea dacă un element este inclus într-un array durează în medie O(n), unde n este numărul de elemente. Pentru a verifica dacă o colecție este inclusă în alta, sunt necesare n iterații, fiecare cu O(m), unde m este dimensiunea celei de-a doua colecții. În total, O(n*m).
  • Set: Verificarea dacă un element este inclus într-un set durează în medie O(1). Pentru a verifica dacă o colecție este inclusă în alta, sunt necesare n iterații, fiecare cu O(1). În total, O(n).

Exemplu cu un set:

  1. Crează un Set din prima colecție.
  2. Iterează peste a doua colecție, verificând dacă fiecare element este inclus în Set creat.
let collection1: [Int] = [1, 2, 3, 4, 5]
let collection2: [Int] = [2, 4]

// Crează un set din collection1
let set1 = Set(collection1)

// Verifică dacă collection2 este un sub-set al collection1
let isSubset = collection2.allSatisfy { set1.contains($0) }

print(isSubset) // Va afișa true