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:
- Maak een
Setvan de eerste collectie. - Itereer over de tweede collectie en controleer of elk element in de gemaakte
Setzit.
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