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:
- Crează un
Setdin prima colecție. - Iterează peste a doua colecție, verificând dacă fiecare element este inclus în
Setcreat.
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