Middle
Bir kolleksiyanın digərinə daxil olub olmadığını daha sürətli necə yoxlamaq olar: massiv və ya to'plam istifadə edərək?
sobes.tech Süni İntellekt
AI-dan cavab
Set (Toplam) elementlərin daxil olub olmadığını yoxlamaqda daha sürətlidir.
İzah:
- Array: Array-də elementin daxil olub olmadığını yoxlamaq orta hesabla O(n) vaxt alır, burada n elementlərin sayıdır. Bir kolleksiyanın digərinə daxil olub olmadığını yoxlamaq üçün n dəfə iterasiya etmək lazımdır, hər biri O(m), burada m ikinci kolleksiyanın ölçüsüdür. Ümumilikdə O(n*m).
- Set: Set-də elementin daxil olub olmadığını yoxlamaq orta hesabla O(1) vaxt alır. Bir kolleksiyanın digərinə daxil olub olmadığını yoxlamaq üçün n dəfə iterasiya etmək lazımdır, hər biri O(1). Ümumilikdə O(n).
Set ilə nümunə:
- Birinci kolleksiyadan
Setyaradın. - İkinci kolleksiya üzərində iterasiya edin və hər elementin yaradılmış
Setdə olub olmadığını yoxlayın.
let collection1: [Int] = [1, 2, 3, 4, 5]
let collection2: [Int] = [2, 4]
// collection1-dən set yaradın
let set1 = Set(collection1)
// collection2-nin collection1-in alt toplusu olub olmadığını yoxlayın
let isSubset = collection2.allSatisfy { set1.contains($0) }
print(isSubset) // true çap edəcək