Sobes.tech
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:

  1. Kreirajte Set od prve kolekcije.
  2. 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