Назад к вопросам
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).
Пример с множеством:
- Создать
Setиз первой коллекции. - Итерировать по второй коллекции, проверяя каждый элемент на вхождение в созданный
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