Sobes.tech
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ə:

  1. Birinci kolleksiyadan Set yaradın.
  2. İ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