Sobes.tech
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).

მაგალითი სეტით:

  1. შექმენით Set პირველი კოლექციიდან.
  2. იტერირება მეორე კოლექციაზე და გადაამოწმეთ, არის თუ არა თითოეული ელემენტი შექმნილ Set-ში.
let collection1: [Int] = [1, 2, 3, 4, 5]
let collection2: [Int] = [2, 4]

// შექმენით `Set` collection1-დან
let set1 = Set(collection1)

// გადაამოწმეთ, არის თუ არა collection2-ის ყველა ელემენტი set1-ის ნაწილად
let isSubset = collection2.allSatisfy { set1.contains($0) }

print(isSubset) // გამოიტანს true