Sobes.tech
Middle

Hogyan ellenőrizhetjük gyorsabban, hogy egy gyűjtemény része-e egy másiknak: tömb vagy halmaz használatával?

sobes.tech MI

Válasz az MI-től

Egy halmaz (Set) gyorsabb az elemek tartalmazásának ellenőrzésében.

Magyarázat:

  • Array: Egy elem tartalmazásának ellenőrzése átlagosan O(n) időt vesz igénybe, ahol n az elemek száma. Egy másik kollekcióban való tartalmazás ellenőrzése n iterációt igényel, mindegyik O(m), ahol m a második kollekció mérete. Összesen O(n*m).
  • Set: Egy elem tartalmazásának ellenőrzése átlagosan O(1) időt vesz igénybe. Egy kollekció másikban való tartalmazásának ellenőrzése n iterációt igényel, mindegyik O(1). Összesen O(n).

Példa halmazzal:

  1. Hozzon létre egy Set-et az első kollekcióból.
  2. Iteráljon a második kollekción, ellenőrizve, hogy minden elem benne van-e a létrehozott Set-ben.
let collection1: [Int] = [1, 2, 3, 4, 5]
let collection2: [Int] = [2, 4]

// Hozzon létre egy halmazt a collection1-ből
let set1 = Set(collection1)

// Ellenőrizze, hogy a collection2 alhalmaz-e a collection1-nek
let isSubset = collection2.allSatisfy { set1.contains($0) }

print(isSubset) // Igazat fog kiírni