Middle
Kako brže proveriti da li je jedna kolekcija uključena u drugu: koristeći niz ili skup?
sobes.tech АИ
Одговор од АИ
Set (Skup) je brži za proveru uključenosti elemenata.
Objašnjenje:
- Niz (Array): Provera da li je element uključen u niz traje u proseku O(n), gde je n broj elemenata. Za proveru da li je jedna kolekcija uključena u drugu, potrebno je n iteracija, svaka od kojih je O(m), gde je m veličina druge kolekcije. Ukupno O(n*m).
- Skup (Set): Provera da li je element uključen u skup traje u proseku O(1). Za proveru da li je jedna kolekcija uključena u drugu, potrebno je n iteracija, svaka od kojih je O(1). Ukupno O(n).
Primer sa skupom:
- Kreirajte
Setod prve kolekcije. - Iterirajte kroz drugu kolekciju i proverite da li je svaki element uključen u kreirani
Set.
let collection1: [Int] = [1, 2, 3, 4, 5]
let collection2: [Int] = [2, 4]
// Kreiranje skupa od collection1
let set1 = Set(collection1)
// Provera da li je collection2 podskup collection1
let isSubset = collection2.allSatisfy { set1.contains($0) }
print(isSubset) // Ispisaće true