Sobes.tech
Junior

Swift-ში მასივში ელემენტის მოძებნის სირთულე რა არის?

sobes.tech AI

პასუხი AI-სგან

Swift-ში ტიპიური არასწორად მოწყობილი მასივში (მაგალითად, Array<Element>) ელემენტის ძებნის სირთულე არის O(n), სადაც n არის მასივში ელემენტების რაოდენობა. ეს გამოიხატება იმით, რომ ყველაზე უარესი შემთხვევა მოითხოვს ყველა ელემენტის გადამოწმებას.

თუმცა, თუ მასივი სორტირებულია, შესაძლებელია ბინარული ძიების გამოყენება, რომელიც აქვს სირთულე O(log n). Swift უზრუნველყოფს binarySearch მეთოდს სორტირებადი კოლექციებისთვის.

გადმოწმების მაგალითი:

let array = [1, 5, 2, 8, 3]
let elementToFind = 8

for element in array {
    if element == elementToFind {
        // ელემენტი იპოვეს
        break
    }
}

სორტირებადი მასივში ბინარული ძიების მაგალითი:

let sortedArray = [1, 2, 3, 5, 8]
let elementToFind = 5

if let index = sortedArray.firstIndex(where: { $0 == elementToFind }) {
    // ელემენტი იპოვეს ინდექსზე
}