Sobes.tech
Middle

Kā ātrāk pārbaudīt, vai viena kolekcija ir iekļauta citā: izmantojot masīvu vai kopu?

sobes.tech AI

Atbilde no AI

Kopa (Set) ir ātrāk pārbauda, vai elementi ir iekļauti.

Skaidrojums:

  • Masīvs (Array): Pārbaude, vai elements ir masīvā, vidēji aizņem O(n) laiku, kur n ir elementu skaits. Lai pārbaudītu, vai viena kolekcija ir iekļauta citā, nepieciešamas n iterācijas, katra ar O(m), kur m ir otras kolekcijas izmērs. Kopā O(n*m).
  • Kopa (Set): Pārbaude, vai elements ir kopā, vidēji aizņem O(1) laiku. Lai pārbaudītu, vai viena kolekcija ir iekļauta citā, nepieciešamas n iterācijas, katra ar O(1). Kopā O(n).

Piemērs ar kopu:

  1. Izveidojiet Set no pirmās kolekcijas.
  2. Iterējiet pa otro kolekciju un pārbaudiet, vai katrs elements ir iekļauts izveidotajā Set.
let collection1: [Int] = [1, 2, 3, 4, 5]
let collection2: [Int] = [2, 4]

// Izveidojiet `Set` no collection1
let set1 = Set(collection1)

// Pārbaudiet, vai collection2 ir subset no collection1
let isSubset = collection2.allSatisfy { set1.contains($0) }

print(isSubset) // Izdrukās true