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]
// შექმენით `Set` collection1-დან
let set1 = Set(collection1)
// გადაამოწმეთ, არის თუ არა collection2-ის ყველა ელემენტი set1-ის ნაწილად
let isSubset = collection2.allSatisfy { set1.contains($0) }
print(isSubset) // გამოიტანს true