Sobes.tech
Middle

Hoe sneller controleren of een collectie in een andere collectie zit: met een array of een set?

sobes.tech AI

Antwoord van AI

Een Set is sneller voor het controleren van de aanwezigheid van elementen.

Uitleg:

  • Array: Het controleren of een element in een array zit, kost gemiddeld O(n) tijd, waarbij n het aantal elementen is. Om te controleren of een collectie in een andere is opgenomen, zijn n iteraties nodig, elk met O(m), waarbij m de grootte van de tweede collectie is. Totaal O(n*m).
  • Set: Het controleren of een element in een set zit, kost gemiddeld O(1). Om te controleren of een collectie in een andere is opgenomen, zijn n iteraties nodig, elk met O(1). Totaal O(n).

Voorbeeld met een set:

  1. Maak een Set van de eerste collectie.
  2. Itereer over de tweede collectie en controleer of elk element in de gemaakte Set zit.
let collection1: [Int] = [1, 2, 3, 4, 5]
let collection2: [Int] = [2, 4]

// Maak een set van collection1
let set1 = Set(collection1)

// Controleer of collection2 een subset is van collection1
let isSubset = collection2.allSatisfy { set1.contains($0) }

print(isSubset) // Zal true afdrukken