[Πίνακες hash έχουν] O (1) εισαγωγή και αναζήτηση
Νομίζω ότι αυτό είναι λάθος.
Πρώτα απ 'όλα, αν περιοριστεί η keyspace να είναι πεπερασμένο, μπορείτε να αποθηκεύσετε τα στοιχεία σε μια σειρά και να κάνει μια O (1) γραμμική σάρωση. Ή θα μπορούσατε να shufflesort τον πίνακα και στη συνέχεια να κάνει μια γραμμική σάρωση σε O (1) με την αναμενόμενη ώρα. Όταν η ουσία είναι πεπερασμένο, τα πράγματα είναι εύκολα O (1).
Ας πούμε πίνακα κατακερματισμού σας θα αποθηκεύσει καμία αυθαίρετη σειρά δυαδικών ψηφίων? δεν το κάνει πολύ σημασία, εφ 'όσον υπάρχει ένα άπειρο σύνολο των κλειδιών, καθένα από τα οποία είναι πεπερασμένη. Στη συνέχεια θα πρέπει να διαβάσετε όλα τα κομμάτια της κάθε εισόδου ερώτημα και εισαγωγής, αλλιώς θα εισάγετε y0 σε ένα άδειο hash και το ερώτημα σχετικά με y1, όπου y0 και y1 διαφέρουν σε μία μόνο θέση bit που δεν εξετάσουμε.
Αλλά ας πούμε ότι τα βασικά μήκη δεν είναι μια παράμετρος. Εάν η εισαγωγή σας και να αναζητήσετε λάβει O (1), και ιδίως κατακερματισμός παίρνει O (1) χρόνο, πράγμα που σημαίνει ότι θα δούμε μόνο ένα πεπερασμένο ποσό της εξόδου από την συνάρτηση κατακερματισμού (από τα οποία είναι πιθανό να είναι μόνο μια πεπερασμένη έξοδο, χορηγείται ).
Αυτό σημαίνει ότι με πεπερασμένο πλήθος κουβάδες, πρέπει να υπάρχει ένα άπειρο σύνολο των χορδών, που όλα έχουν την ίδια τιμή κατακερματισμού. Ας υποθέσουμε ότι εισάγετε πολλά, δηλαδή ω (1), από αυτά, και να αρχίσει την αναζήτηση. Αυτό σημαίνει ότι ο πίνακας κατακερματισμού σας πρέπει να καταφύγουμε σε κάποια άλλη O (1) μηχανισμό εισαγωγής / αναζήτησης για να απαντήσουν στις ερωτήσεις μου. Ποιο από τα δύο, και γιατί να μην το χρησιμοποιήσετε άμεσα;