Junior — Middle
Μπορείτε να δώσετε παραδείγματα αλγορίθμων για την αναζήτηση στοιχείων σε δομές δεδομένων;
sobes.tech AI
Απάντηση από AI
Για την εύρεση στοιχείων σε δομές δεδομένων, συχνά χρησιμοποιούνται οι ακόλουθοι αλγόριθμοι:
- Γραμμική αναζήτηση (Linear Search) — διατρέχει τα στοιχεία ένα προς ένα, κατάλληλο για μη ταξινομημένους πίνακες.
- Δυαδική αναζήτηση (Binary Search) — αποτελεσματική για ταξινομημένους πίνακες, διαιρεί την περιοχή αναζήτησης στη μέση σε κάθε βήμα.
- Αναζήτηση σε δέντρα (π.χ., αναζήτηση σε δυαδικό δέντρο αναζήτησης) — αναδρομική ή επαναληπτική διέλευση για εύρεση στοιχείου.
- Αναζήτηση σε πίνακες κατακερματισμού (hash tables) — γρήγορη πρόσβαση μέσω κλειδιού με χρήση συνάρτησης κατακερματισμού.
Παράδειγμα δυαδικής αναζήτησης σε Swift:
func binarySearch(_ array: [Int], target: Int) -> Int? {
var left = 0
var right = array.count - 1
while left <= right {
let mid = (left + right) / 2
if array[mid] == target {
return mid
} else if array[mid] < target {
left = mid + 1
} else {
right = mid - 1
}
}
return nil
}