Назад к вопросам
Middle
127
questionbank

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

Sobes Copilot

Получайте ответы в реальном времени

Ответ от нейросети

sobes.tech AI

Множество (Set) быстрее для проверки включения элементов.

Объяснение:

  • Массив (Array): Проверка на включение элемента в массив занимает время O(n) в среднем, где n — количество элементов. Для проверки, входит ли одна коллекция в другую, потребуется n итераций, каждая из которых — O(m), где m — размер второй коллекции. Итого O(n*m).
  • Множество (Set): Проверка на включение элемента в множество занимает время О(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