Middle
Jak rychleji zjistit, zda jedna kolekce patří do druhé: pomocí pole nebo množiny?
sobes.tech AI
Odpověď od AI
Množina (Set) je rychlejší při kontrole, zda jsou prvky obsaženy.
Vysvětlení:
- Array: Kontrola, zda je prvek obsažen v poli, trvá průměrně čas O(n), kde n je počet prvků. Pro kontrolu, zda jedna kolekce je součástí jiné, je potřeba n iterací, každá s časem O(m), kde m je velikost druhé kolekce. Celkem O(n*m).
- Set: Kontrola, zda je prvek obsažen v množině, trvá průměrně čas O(1). Pro kontrolu, zda jedna kolekce je součástí jiné, je potřeba n iterací, každá s časem O(1). Celkem O(n).
Příklad s množinou:
- Vytvořte
Setz první kolekce. - Iterujte přes druhou kolekci a ověřte, zda každý prvek je obsažen v vytvořeném
Set.
let collection1: [Int] = [1, 2, 3, 4, 5]
let collection2: [Int] = [2, 4]
// Vytvoření množiny z collection1
let set1 = Set(collection1)
// Ověření, zda je collection2 podmnožinou collection1
let isSubset = collection2.allSatisfy { set1.contains($0) }
print(isSubset) // Vytiskne true