Junior — Middle
Πώς γίνεται η πρόσβαση στα στοιχεία στις δομές δεδομένων Map χρησιμοποιώντας μια συνάρτηση κατακερματισμού;
sobes.tech AI
Απάντηση από AI
Στο Go, οι δομές δεδομένων Map υλοποιούνται με βάση τους πίνακες κατακερματισμού (hash tables). Όταν γίνεται πρόσβαση σε ένα στοιχείο μέσω του κλειδιού, συμβαίνει το εξής:
- Το κλειδί περνάει από μια συνάρτηση κατακερματισμού που υπολογίζει έναν κωδικό κατακερματισμού.
- Ο κωδικός κατακερματισμού χρησιμοποιείται για τον καθορισμό της θέσης του κάδου (bucket) στον πίνακα.
- Στον κάδο, γίνεται αναζήτηση του στοιχείου με το αντίστοιχο κλειδί (συνήθως μέσω σύγκρισης κλειδιών).
Αυτό εξασφαλίζει χρόνο πρόσβασης κατά μέσο όρο κοντά στο O(1).
Παράδειγμα χρήσης map στο Go:
m := make(map[string]int)
m["apple"] = 5
value := m["apple"] // value == 5
Εσωτερικά, για το κλειδί "apple" υπολογίζεται μια τιμή hash, που βοηθά στον εντοπισμό του απαραίτητου στοιχείου.