Sobes.tech
Middle

Кандай тезирек текшерсе болот, бир коллекция башкасына киретеби: массив же жыйнакты колдонуп?

sobes.tech AI

AIден жооп

Жыйнак (Set) элементтердин кирүү текшерүүсү үчүн тезирээк.

Түшүндүрмө:

  • Массив (Array): Массивдеги элементтин кирүү текшерүү орточо убакытта O(n), анда n — элементтердин саны. Бир жыйнактын экинчисине кирүү текшерүү үчүн n ирет өтүү керек, ар бири O(m), анда m — экинчи жыйнактын өлчөмү. Жалпысынан O(n*m).
  • Жыйнак (Set): Жыйнактын ичинде элементтин бар-жогун текшерүү орточо убакытта O(1). Бир жыйнактын экинчисине кирүү текшерүү үчүн n ирет өтүү керек, ар бири O(1). Жалпысынан O(n).

Мисал менен:

  1. Биринчи жыйнактан Set түзүңүз.
  2. Экинчи жыйнактын ар бир элементин текшерип, ал түзүлгөн Setте бар-жогун текшериңиз.
let collection1: [Int] = [1, 2, 3, 4, 5]
let collection2: [Int] = [2, 4]

// collection1ден жыйнак түзүү
let set1 = Set(collection1)

// collection2 collection1дин кичинекей жыйнагыбы же жокпу текшерүү
let isSubset = collection2.allSatisfy { set1.contains($0) }

print(isSubset) // true чыгат