Sobes.tech
Junior

Ποια είναι η πολυπλοκότητα της αναζήτησης ενός στοιχείου σε έναν πίνακα σε Swift;

sobes.tech AI

Απάντηση από AI

Η πολυπλοκότητα της αναζήτησης ενός στοιχείου σε έναν τυπικό μη ταξινομημένο πίνακα (π.χ., Array<Element>) στη Swift είναι 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 }) {
    // Το στοιχείο βρέθηκε στη θέση
}