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

  1. Erstellen Sie ein Set aus der ersten Sammlung.
  2. Iterieren Sie über die zweite Sammlung und prüfen Sie, ob jedes Element im erstellten Set enthalten 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