Διαφορά ανάμεσα σε δέντρα AVL και δέντρα άτεχνος

ψήφοι
31

Είμαι μελέτη για διάφορα δέντρα, και ήρθε σε AVL δέντρα και άτεχνος. Θέλω να ξέρω

  1. Ποια είναι η διαφορά ανάμεσα σε δέντρα AVL και δέντρα άτεχνος;
  2. Σε ποια βάση μπορούμε να επιλέξετε αυτά τα δέντρα;
  3. Ποια είναι τα θετικά του και τα αρνητικά του αυτά τα δέντρα;
  4. Ποιες είναι οι επιδόσεις αυτών των δέντρων από την άποψη των μεγάλων O συμβολισμός;
Δημοσιεύθηκε 19/09/2011 στις 07:12
πηγή χρήστη
Σε άλλες γλώσσες...                            


2 απαντήσεις

ψήφοι
3

1) Ποια είναι η διαφορά ανάμεσα σε δέντρα AVL και δέντρα άτεχνος;

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

2) Σε ποια βάση μπορούμε να επιλέξετε αυτά τα δέντρα;

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

Κατά γενικό κανόνα για την επιλογή αυτών των δέντρων, εάν χρειαστεί «Μέση» log (n) χρόνο κατά τη διάρκεια μιας περιόδου των εργασιών δέντρο, στη συνέχεια, χρησιμοποιήστε το δέντρο άτεχνος. Δυαδικό δέντρο δεν μπορεί να εγγυηθεί αυτό.

3) Ποια είναι τα θετικά του και τα αρνητικά του αυτά τα δέντρα;

Θετικά και για τους δύο είναι ότι μπορείτε να πάρετε γύρω log (n) και στις δύο αυτές δομές δεδομένων θεωρητικά.

Όπως αναφέρθηκε δέντρα άτεχνος έχουν μέση log (n) πάνω από έναν αριθμό λειτουργιών. Αυτό σημαίνει ότι, ίσως έχεις ν χρονική πολυπλοκότητα για μια επιχείρηση atleast μία φορά σε αυτό το σύνολο. Αλλά αυτό θα αντισταθμιστεί κατά την πρόσβαση των συχνών στοιχείων.

Το αρνητικό του δυαδικού δένδρου αναζήτησης είναι ότι, θα πρέπει να είστε τυχεροί να έχουμε log (n) πάντα. Αν τα πλήκτρα δεν είναι τυχαία, τότε το δέντρο θα μειώσει σε μια λίστα σαν μορφή με μία μόνο πλευρά.

4) Ποιες είναι οι επιδόσεις αυτών των δέντρων από την άποψη των μεγάλων O συμβολισμός;

Log δέντρο άτεχνος (n) κατά μέσο όρο για μια ομάδα πράξεων δέντρου. Binary Log δέντρο (n) μόνο εάν τα κλειδιά σας πηγαίνει σε τυχαία.

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

Απαντήθηκε 18/01/2012 στις 04:40
πηγή χρήστη

ψήφοι
61

  1. Και τα δύο δέντρα άτεχνος και AVL δέντρα είναι δυαδικά δέντρα αναζήτησης με εξαιρετική εγγυήσεων καλής εκτέλεσης, αλλά διαφέρουν ως προς τον τρόπο επίτευξη των στόχων αυτών εγγυώνται ότι οι επιδόσεις. Σε ένα AVL δέντρο, το σχήμα του δέντρου περιορίζεται ανά πάσα στιγμή, έτσι ώστε το σχήμα δέντρου είναι ισορροπημένη, που σημαίνει ότι το ύψος του δέντρου δεν υπερβαίνει O (log n). Αυτό το σχήμα διατηρείται σε εισαγωγές και διαγραφές, και δεν αλλάζουν κατά τη διάρκεια του αναζητήσεις. δέντρα άτεχνος, από την άλλη πλευρά, διατηρούν αποτελεσματικό από την αναμόρφωση του δέντρου σε απάντηση αναζητήσεις σε αυτό. Με αυτόν τον τρόπο, συχνά προσβάσιμα στοιχεία κινηθεί προς τα επάνω προς την κορυφή του δέντρου και να έχουν καλύτερες μέρες αναζήτησης. Το σχήμα των δέντρων άτεχνος δεν περιορίζεται, και ποικίλει ανάλογα με το τι αναζητήσεις πραγματοποιούνται.

  2. Δεν υπάρχει σκληρός και γρήγορος κανόνας για αυτό. Ωστόσο, μία βασική διαφορά μεταξύ των δομών είναι ότι AVL δέντρα εγγυώνται γρήγορη αναζήτηση (O (log n)) για κάθε λειτουργία, ενώ τα δέντρα άτεχνος μπορεί μόνο να εγγυηθεί ότι κάθε ακολουθία n εργασιών παίρνει το πολύ O (n log n) χρόνο. Αυτό σημαίνει ότι αν χρειαστεί αναζητήσεις σε πραγματικό χρόνο, το AVL δέντρο είναι πιθανό να είναι καλύτερη. Ωστόσο, τα δέντρα άτεχνος τείνουν να είναι πολύ πιο γρήγορα κατά μέσο όρο, οπότε αν θέλετε να ελαχιστοποιήσει το συνολικό χρόνο εκτέλεσης των αναζητήσεων δέντρο, το δέντρο άτεχνος είναι πιθανό να είναι καλύτερη. Επιπλέον, τα δέντρα άτεχνος υποστηρίζει ορισμένες λειτουργίες, όπως η διάσπαση και συγχώνευση πολύ αποτελεσματικά, ενώ οι αντίστοιχες πράξεις δέντρο AVL συμμετέχουν περισσότερο και λιγότερο αποτελεσματική. δέντρα άτεχνος είναι περισσότερη μνήμη αποδοτική από ό, τι AVL δέντρα, επειδή δεν χρειάζεται να αποθηκεύουν ισορροπία πληροφορίες στους κόμβους. Ωστόσο, AVL δέντρα είναι πιο χρήσιμη σε multi-threaded περιβάλλον με πολλές αναζητήσεις, γιατί αναζητήσεις σε ένα AVL δέντρο μπορεί να γίνει παράλληλα, ενώ δεν μπορεί σε δέντρα άτεχνος. Επειδή τα δέντρα άτεχνος αναμορφώσει τον εαυτό τους με βάση αναζητήσεις, αν θέλετε να αποκτήσετε πρόσβαση σε ένα μικρό υποσύνολο των στοιχείων του δέντρου μόνο, ή αν έχετε πρόσβαση σε κάποια στοιχεία πολύ περισσότερο από τους άλλους, το δέντρο άτεχνος θα ξεπεράσουν το AVL δέντρο. Τέλος, τα δέντρα άτεχνος τείνουν να είναι πιο εύκολο να εφαρμοστεί από AVL δέντρα, δεδομένου ότι η λογική της περιστροφής είναι πολύ πιο εύκολο.

  3. Βλέπε (2)

  4. AVL δέντρο εισαγωγή, διαγραφή, και αναζητήσεις λάβει O (log n) χρόνο κάθε. δέντρα άτεχνος έχουν τις ίδιες εγγυήσεις, αλλά η εγγύηση είναι μόνο σε αποσβεσμένο αίσθηση. Οποιαδήποτε μακρά ακολουθία των λειτουργιών θα λάβει το πολύ O (n log n) χρόνο, αλλά μεμονωμένες πράξεις μπορεί να διαρκέσει όσο O (n) χρόνο.

Η ελπίδα αυτό βοηθά!

Απαντήθηκε 04/02/2012 στις 23:06
πηγή χρήστη

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