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).
Пример с множество:
- Създайте
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