Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Ισορροπημένα Δένδρα Μπορούμε να επιτύχουμε χρόνο εκτέλεσης

Παρόμοιες παρουσιάσεις


Παρουσίαση με θέμα: "Ισορροπημένα Δένδρα Μπορούμε να επιτύχουμε χρόνο εκτέλεσης"— Μεταγράφημα παρουσίασης:

1 Ισορροπημένα Δένδρα Μπορούμε να επιτύχουμε χρόνο εκτέλεσης
Μπορούμε να επιτύχουμε χρόνο εκτέλεσης για κάθε λειτουργία; Ισορροπημένο δένδρο : Διατηρεί ύψος μετά από κάθε εισαγωγή ή διαγραφή TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AAAAA

2 Περιστροφές αριστερή περιστροφή από το x x y α γ y x δεξιά περιστροφή
β γ α β link rotL(link x) { link y = x->r; x->r = y->l; y->l = x; return y; } link rotR(link y) { link x = y->l; y->l = x->r; x->r = y; return x; } Η περιστροφή παίρνει χρόνο Ο(1) αριστερή περιστροφή δεξιά περιστροφή TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AAAAA

3 Περιστροφές 17 14 21 10 16 19 23 7 12 15 20 17 3 δεξιά περιστροφή από το 14 10 21 14 7 19 23 3 12 16 20 15 TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AAAAA

4 Ισορροπημένα Δένδρα Μερικοί τύποι ισορροπημένων δένδρων
Τυχαιοποιημένα δένδρα (*) Αρθρωτά δένδρα (splay trees) Δένδρα AVL Δένδρα κόκκινου-μαύρου (a,b) δένδρα Όλα τα παραπάνω χρησιμοποιούν περιστροφές για να παραμείνουν ισορροπημένα (*) Τα τυχαιοποιημένα δένδρα είναι ισορροπημένα με μεγάλη πιθανότητα TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AAAAA

5 Εισαγωγή στη ρίζα Εκτελούμε τον αλγόριθμο εισαγωγής όπως σε ένα απλό δυαδικό δένδρο. Μεταφέρουμε το νέο στοιχείο στη ρίζα του δένδρου με τη χρήση περιστροφών. link insertT(link h, Item item) { Key v = key(item); if (h == z) return NEW(item, z, z, 1); if (less(v, key(h->item)) { h->l = insertT(h->l, item); h = rotR(h); } else { h->r = insertT(h->r, item); h = rotL(h); } return h; } void STinsert(Item item) { head = insertT(root, item); } TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AAAAA

6 Εισαγωγή στη ρίζα Εισαγωγή 14 10 8 17 6 12 21 4 7 13 15
TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AAAAA

7 Εισαγωγή στη ρίζα Περιστροφή 15 10 8 17 6 12 21 4 7 13 15 14
TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AAAAA

8 Εισαγωγή στη ρίζα Περιστροφή 13 10 8 17 6 12 21 4 7 13 14 15
TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AAAAA

9 Εισαγωγή στη ρίζα Περιστροφή 12 10 8 17 6 12 21 4 7 14 13 15
TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AAAAA

10 Εισαγωγή στη ρίζα Περιστροφή 17 10 8 17 6 14 21 4 7 12 15 13
TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AAAAA

11 Εισαγωγή στη ρίζα Περιστροφή 10 10 8 14 6 12 17 4 7 13 15 21
TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AAAAA

12 Εισαγωγή στη ρίζα 14 10 17 8 12 15 21 6 13 4 7 TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AAAAA

13 Επιλογή Βρίσκει το στοιχείο με το k-οστο μικρότερο κλειδί.
Item selectR(link h, int k) { int t = h->l->N; if (h == z) return NULLitem; if (t > k) return selectR(h->l, k); if (t < k) return selectR(h->r, k-t-1); return h->item; } Item STselect(int k) { return selectR(head, k); } TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AAAAA

14 Διαμέριση Τοποθετεί τον κόμβο με το k-οστο μικρότερο κλειδί στη θέση της ρίζας του δένδρου. Η μεταφορά του κόμβου γίνεται με τη χρήση περιστροφών. link partR(link h, int k) { int t = h->l->N; if (t > k) { h->l = partR(h->l, k); h = rotR(h); } if (t < k) { h->r = partR(h->r, k-t-1); h = rotL(h); } } TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AAAAA

15 Διαμέριση 21 14 27 8 16 25 32 6 19 26 7 TexPoint fonts used in EMF.
Read the TexPoint manual before you delete this box.: AAAAA

16 Διαμέριση 21 14 27 8 19 25 32 6 16 26 7 TexPoint fonts used in EMF.
Read the TexPoint manual before you delete this box.: AAAAA

17 Διαμέριση 21 19 27 14 25 32 8 16 26 6 7 TexPoint fonts used in EMF.
Read the TexPoint manual before you delete this box.: AAAAA

18 Διαμέριση 19 14 21 8 16 27 6 25 32 7 26 TexPoint fonts used in EMF.
Read the TexPoint manual before you delete this box.: AAAAA

19 Τυχαιοποιημένα δένδρα
Εισαγωγή ενός νέου στοιχείου x σε δένδρο με Ν στοιχεία Εκτελούμε τον αλγόριθμο εισαγωγής στη ρίζα με πιθανότητα Διαφορετικά εισάγουμε αναδρομικά το νέο στοιχείο στο κατάλληλο υποδένδρο: Αν το x < κλειδί της ρίζας καλούμε αναδρομικά την εισαγωγή για το αριστερό υποδένδρο Αν το x > κλειδί της ρίζας καλούμε αναδρομικά την εισαγωγή για το δεξιό υποδένδρο link insertR(link h, Item item) { Key v = key(item), t = key(h->item); if (h == z) return NEW(item, z, z, 1); if ( rand() < RAND_MAX/(h->N+1) ) return insertT(h,item); if less(v,t) h->l = insertR(h->l, item); else h->r = insertR(h->r, item); (h->N)++; return h; } void STinsert(Item item) { head = insertR(head, item); } TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AAAAA

20 Εισαγωγή στη ρίζα Εισαγωγή 14 10 8 6 4 7 17 12 13 15 21 10 8 6 4 7 17
με πιθανότητα 1/11 10 8 6 4 7 17 14 13 21 15 12 TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AAAAA

21 Εισαγωγή στη ρίζα Εισαγωγή 14 10 8 6 4 7 17 12 13 15 21 10 8 6 4 7 17
διαφορετικά 10 8 6 4 7 17 12 13 15 21 TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AAAAA

22 Εισαγωγή στη ρίζα Εισαγωγή 14 10 8 6 4 7 17 12 13 15 21 10 8 17 14 13
με πιθανότητα 1/6 10 8 17 14 13 21 15 12 6 4 7 TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AAAAA

23 Εισαγωγή στη ρίζα Εισαγωγή 14 10 8 6 4 7 17 12 13 15 21 10 8 6 4 7 17
διαφορετικά 10 8 6 4 7 17 12 13 15 21 TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AAAAA

24 Εισαγωγή στη ρίζα Εισαγωγή 14 10 8 6 4 7 17 12 13 15 21 10 8 17 6 14
με πιθανότητα 1/4 10 8 17 6 14 13 15 12 21 4 7 TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AAAAA

25 Εισαγωγή στη ρίζα Εισαγωγή 14 10 8 6 4 7 17 12 13 15 21 10 8 6 4 7 17
διαφορετικά 10 8 6 4 7 17 12 13 15 21 TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AAAAA

26 Εισαγωγή στη ρίζα Εισαγωγή 14 10 8 6 4 7 17 12 13 15 21 10 8 17 6 12
με πιθανότητα 1/3 10 8 17 6 12 21 4 7 14 13 15 TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AAAAA

27 Εισαγωγή στη ρίζα Εισαγωγή 14 10 8 6 4 7 17 12 13 15 21 10 8 6 4 7 17
διαφορετικά 10 8 6 4 7 17 12 13 15 21 TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AAAAA

28 Εισαγωγή στη ρίζα Εισαγωγή 14 10 8 6 4 7 17 12 13 15 21 10 8 17 6 12
με πιθανότητα 1/2 10 8 17 6 12 21 4 7 13 14 15 TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AAAAA

29 Εισαγωγή στη ρίζα Εισαγωγή 14 10 8 6 4 7 17 12 13 15 21 10 8 6 4 7 17
διαφορετικά 10 8 6 4 7 17 12 13 15 21 TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AAAAA

30 Εισαγωγή στη ρίζα Εισαγωγή 14 10 8 6 4 7 17 12 13 15 21 10 8 17 6 12
με πιθανότητα 1 10 8 17 6 12 21 4 7 13 15 14 TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AAAAA

31 Τυχαιοποιημένα δένδρα
Εισαγωγή ενός νέου στοιχείου x σε δένδρο με Ν στοιχεία Εκτελούμε τον αλγόριθμο εισαγωγής στη ρίζα με πιθανότητα Διαφορετικά εισάγουμε αναδρομικά το νέο στοιχείο στο κατάλληλο υποδένδρο: Αν το x < κλειδί της ρίζας καλούμε αναδρομικά την εισαγωγή για το αριστερό υποδένδρο Αν το x > κλειδί της ρίζας καλούμε αναδρομικά την εισαγωγή για το δεξιό υποδένδρο Ιδιότητα: Η κατασκευή ενός τυχαιοποιημένου ΔΔΑ ισοδυναμεί με την κατασκευή ενός καθιερωμένου ΔΔΑ από τυχαίο αρχικό συνδυασμό κλειδιών. Για την κατασκευή ενός τυχαιοποιημένου ΔΔΑ με Ν στοιχεία απαιτούνται περίπου συγκρίσεις. Μια αναζήτηση κάνει περίπου συγκρίσεις. Ιδιότητα: Η πιθανότητα το κόστος κατασκευής ενός τυχαιοποιημένου ΔΔΑ να είναι μεγαλύτερο από τη μέση τιμή κατά ένα παράγοντα είναι TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AAAAA


Κατέβασμα ppt "Ισορροπημένα Δένδρα Μπορούμε να επιτύχουμε χρόνο εκτέλεσης"

Παρόμοιες παρουσιάσεις


Διαφημίσεις Google