Middle
Wie überprüft man schneller, ob eine Sammlung in einer anderen enthalten ist: mit einem Array oder einer Menge?
sobes.tech KI
Antwort von AI
Ein Set ist schneller bei der Überprüfung, ob Elemente enthalten sind.
Erklärung:
- Array: Die Überprüfung, ob ein Element in einem Array enthalten ist, dauert im Durchschnitt O(n), wobei n die Anzahl der Elemente ist. Um zu prüfen, ob eine Sammlung in eine andere enthalten ist, sind n Iterationen erforderlich, jede mit O(m), wobei m die Größe der zweiten Sammlung ist. Insgesamt O(n*m).
- Set: Die Überprüfung, ob ein Element in einer Menge enthalten ist, dauert im Durchschnitt O(1). Für die Überprüfung, ob eine Sammlung in eine andere enthalten ist, sind n Iterationen erforderlich, jede mit O(1). Insgesamt O(n).
Beispiel mit einer Menge:
- Erstellen Sie ein
Setaus der ersten Sammlung. - Iterieren Sie über die zweite Sammlung und prüfen Sie, ob jedes Element im erstellten
Setenthalten ist.
let collection1: [Int] = [1, 2, 3, 4, 5]
let collection2: [Int] = [2, 4]
// Erstellen eines Sets aus collection1
let set1 = Set(collection1)
// Überprüfen, ob collection2 eine Teilmenge von collection1 ist
let isSubset = collection2.allSatisfy { set1.contains($0) }
print(isSubset) // Gibt true aus