Λεξικό εφαρμογή (Υπόλοιπο Δυαδική Αναζήτηση δέντρο vs πίνακα κατακερματισμού)

ψήφοι
1

Κάτω από ποιες συνθήκες θα ήταν καλύτερα να εφαρμόσει ένα λεξικό ADT χρησιμοποιώντας μια ισορροπημένη δυαδικό δένδρο αναζήτησης και όχι ένα πίνακα κατακερματισμού;

Η υπόθεσή μου είναι ότι είναι πάντα καλύτερο να χρησιμοποιήσετε ένα δυαδικό δένδρο αναζήτησης, λόγω των φυσικών παραγγελίας του.

Αλλά είναι αλήθεια ότι ο χρόνος αναζήτησης του πίνακα κατακερματισμού μπορεί να είναι τόσο καλή όσο O (1), έναντι O (logn) για το δυαδικό δέντρο.

έτσι δεν είμαι σίγουρος τι θα ήταν οι circumtaces.

Δημοσιεύθηκε 15/04/2011 στις 02:13
πηγή χρήστη
Σε άλλες γλώσσες...                            


3 απαντήσεις

ψήφοι
0

Η ερώτησή σας περιέχει ήδη την απάντηση:

Αν δεν απαιτεί καμία εγγενή παραγγελία και στη συνέχεια χρησιμοποιήστε ένα hashtable για καλύτερη απόδοση. Εάν οι απαιτήσεις σας απαιτούν κάποιο είδος της παραγγελίας, στη συνέχεια, μπορείτε να χρησιμοποιήσετε ένα δέντρο.

Απαντήθηκε 15/04/2011 στις 02:16
πηγή χρήστη

ψήφοι
1

Hash πίνακες ενδέχεται να έχουν ένα ζήτημα επιδόσεων όταν παίρνουν γεμίσει και πρέπει να ανακατανείμει μνήμη (στα πλαίσια ενός σκληρού συστήματος σε πραγματικό χρόνο) .Binary δέντρα δεν έχουν αυτό το πρόβλημα. Hash πίνακες χρειάζονται περισσότερη μνήμη από ό, τι στην πραγματικότητα χρησιμοποιούν, όπου, όπως δυαδικά δέντρα χρησιμοποιούν τόσο πολύ μνήμη που χρειάζεται.

Απαντήθηκε 15/04/2011 στις 02:19
πηγή χρήστη

ψήφοι
0

Η χρονική πολυπλοκότητα για λεξικό είναι:

-----------------------------------------
| Operation   |  Dictionary |    BST    | 
-----------------------------------------
| Insert      |  O(1)       | O(log(n)) |
-----------------------------------------
| Delete      |  O(1)       | O(log(n)) |
-----------------------------------------
| Search      |  O(1)       | O(log(n)) |
-----------------------------------------

Τόσο πού μπορείτε να χρησιμοποιήσετε BST vs λεξικό; Εδώ είναι μερικά βασικά πλεονεκτήματα της BST.

  • Με BST έχετε πάντα λειτουργίας O (log (n)), αλλά η αλλαγή μεγέθους ενός πίνακα κατακερματισμού είναι μια δαπανηρή λειτουργία
  • Αν χρειαστεί να πάρετε τα κλειδιά σε ταξινομημένη σειρά σας να πάρετε τους διέρχονται inorder δέντρο. Η ταξινόμηση δεν είναι φυσικό σε ένα λεξικό
  • Κάνοντας τα στατιστικά στοιχεία, όπως την εύρεση την πλησιέστερη χαμηλότερη και μεγαλύτερη στοιχείου, ή το ερώτημα εύρους.
Απαντήθηκε 29/01/2019 στις 21:47
πηγή χρήστη

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more