Δομές Δεδομένων. Δημήτρης Μιχαήλ. Δέντρα Αναζήτησης. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "Δομές Δεδομένων. Δημήτρης Μιχαήλ. Δέντρα Αναζήτησης. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο"

Transcript

1 Δομές Δεδομένων Δέντρα Αναζήτησης Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

2 Το πρόβλημα Αναζήτηση Θέλουμε να διατηρήσουμε αντικείμενα με κλειδιά και να μπορούμε εκτός από προσθαφαίρεση αντικειμένων να κάνουμε γρήγορη αναζήτηση κάποιου αντικειμένου με βάση ένα κλειδί. Χαροκόπειο Πανεπιστήμιο 2/82

3 Παράδειγμα Έχουμε αντικείμενα που αντιπροσωπεύουν τραπεζικές συναλλαγές και θέλουμε να κάνουμε αναζήτηση με βάση ένα κλειδί που είναι η ημερομηνία. Χαροκόπειο Πανεπιστήμιο 3/82

4 Αναζήτηση Μπορούμε να υλοποιήσουμε μία δομή που να παρέχει αναζήτηση με διάφορους τρόπους. Το ζητούμενο είναι να είναι η αναζήτηση αποδοτική ταυτόχρονα με τις υπόλοιπες λειτουργίες. π.χ μία υλοποίηση αναζήτησης σε λίστα δεν είναι αποδοτική Χαροκόπειο Πανεπιστήμιο 4/82

5 Δυαδικά Δέντρα Αναζήτησης (ΔΔΑ) Binary Search Tree (BST) Ορισμός Ένα δυαδικό δέντρο αναζήτησης είναι ένα δυαδικό δέντρο όπου κάθε κόμβος είναι συσχετισμένος με ένα κλειδί και με την πρόσθετη ιδιότητα ότι το κλειδί οποιουδήποτε κόμβου είναι μεγαλύτερο (ή ίσο) από τα κλειδιά όλων των κόμβων του αριστερού υποδέντρου αυτού του κόμβου, και μικρότερο από τα κλειδιά όλων των κόμβων του δεξιού υποδέντρου αυτού του κόμβου. Χαροκόπειο Πανεπιστήμιο 5/82

6 Δυαδικά Δέντρα Αναζήτησης (ΔΔΑ) Binary Search Tree (BST) k k > k k + Χαροκόπειο Πανεπιστήμιο 6/82

7 Παράδειγμα Δυαδικό Δέντρα Αναζήτησης (ΔΔΑ) Χαροκόπειο Πανεπιστήμιο 7/82

8 Αναζήτηση σε ΔΔΑ Αλγόριθμος ξεκινάμε από την ρίζα εάν είμαστε σε ένα κόμβο και βρούμε το κλειδί που ψάχνουμε τότε επιστρέφουμε την πληροφορία αυτού του κόμβου αλλιώς πάμε δεξιά ή αριστερά ανάλογα με την σύγκριση του κλειδιού που ψάχνουμε και του κλειδιού του κόμβου Χαροκόπειο Πανεπιστήμιο 8/82

9 Αναζήτηση σε ΔΔΑ Αναζήτηση του Χαροκόπειο Πανεπιστήμιο 9/82

10 Αναζήτηση σε ΔΔΑ Αναζήτηση του Χαροκόπειο Πανεπιστήμιο 9/82

11 Αναζήτηση σε ΔΔΑ Αναζήτηση του 9 9 < Χαροκόπειο Πανεπιστήμιο 9/82

12 Αναζήτηση σε ΔΔΑ Αναζήτηση του 9 9 < < Χαροκόπειο Πανεπιστήμιο 9/82

13 Αναζήτηση σε ΔΔΑ Αναζήτηση του 9 9 < < > Χαροκόπειο Πανεπιστήμιο 9/82

14 Αναζήτηση σε ΔΔΑ Αναζήτηση του Χαροκόπειο Πανεπιστήμιο 10/82

15 Αναζήτηση σε ΔΔΑ Αναζήτηση του Χαροκόπειο Πανεπιστήμιο 10/82

16 Αναζήτηση σε ΔΔΑ Αναζήτηση του > Χαροκόπειο Πανεπιστήμιο 10/82

17 Αναζήτηση σε ΔΔΑ Αναζήτηση του > < Χαροκόπειο Πανεπιστήμιο 10/82

18 Αναζήτηση σε ΔΔΑ Αναζήτηση του > < > 16 NULL Χαροκόπειο Πανεπιστήμιο 10/82

19 Διάσχιση inorder κανόνας Επισκεπτόμαστε πρώτα το αριστερό υποδέντρο, μετά τον κόμβο και μετά το δεξιό υποδέντρο Επισκεπτόμαστε τους κόμβους με αύξουσα σειρά κλειδιού. Η διάσχιση πέρνει γραμμικό χρόνο O(n) όπου n τα στοιχεία του δέντρου. Χαροκόπειο Πανεπιστήμιο 11/82

20 Εισαγωγή σε ΔΔΑ Αλγόριθμος τρέχουμε πρώτα μία αναζήτηση εάν βρούμε το κλειδί δεν κάνουμε τίποτα αλλιώς προσθέτουμε ένα καινούριο κόμβο με το νέο κλειδί στο σημείο που σταμάτησε η αναζήτηση Χαροκόπειο Πανεπιστήμιο 12/82

21 Εισαγωγή σε ΔΔΑ Εισαγωγή του Χαροκόπειο Πανεπιστήμιο 13/82

22 Εισαγωγή σε ΔΔΑ Εισαγωγή του Χαροκόπειο Πανεπιστήμιο 13/82

23 Εισαγωγή σε ΔΔΑ Εισαγωγή του Χαροκόπειο Πανεπιστήμιο 13/82

24 Εισαγωγή σε ΔΔΑ Εισαγωγή του Χαροκόπειο Πανεπιστήμιο 13/82

25 Εισαγωγή σε ΔΔΑ Εισαγωγή του Χαροκόπειο Πανεπιστήμιο 13/82

26 Εισαγωγή σε ΔΔΑ Εισαγωγή του Χαροκόπειο Πανεπιστήμιο 13/82

27 Εισαγωγή σε ΔΔΑ Εισαγωγή του Χαροκόπειο Πανεπιστήμιο 13/82

28 Διαγραφή σε ΔΔΑ Αλγόριθμος τρέχουμε πρώτα μία αναζήτηση εάν δεν βρούμε το κλειδί δεν κάνουμε τίποτα αλλιώς υπάρχουν 3 περιπτώσεις ανάλογα με τον αριθμό των παιδιών του κόμβου που πρέπει να αφαιρέσουμε Χαροκόπειο Πανεπιστήμιο 14/82

29 Διαγραφή σε ΔΔΑ Περίπτωση 1: Διαγραφή του 17 (κανένα παιδί) Χαροκόπειο Πανεπιστήμιο 15/82

30 Διαγραφή σε ΔΔΑ Περίπτωση 1: Διαγραφή του 17 (κανένα παιδί) Χαροκόπειο Πανεπιστήμιο 15/82

31 Διαγραφή σε ΔΔΑ Περίπτωση 1: Διαγραφή του 17 (κανένα παιδί) Χαροκόπειο Πανεπιστήμιο 15/82

32 Διαγραφή σε ΔΔΑ Περίπτωση 1: Διαγραφή του 17 (κανένα παιδί) Χαροκόπειο Πανεπιστήμιο 15/82

33 Διαγραφή σε ΔΔΑ Περίπτωση 1: Διαγραφή του 17 (κανένα παιδί) Χαροκόπειο Πανεπιστήμιο 15/82

34 Διαγραφή σε ΔΔΑ Περίπτωση 2: Διαγραφή του 16 (ένα παιδί) Χαροκόπειο Πανεπιστήμιο 16/82

35 Διαγραφή σε ΔΔΑ Περίπτωση 2: Διαγραφή του 16 (ένα παιδί) Χαροκόπειο Πανεπιστήμιο 16/82

36 Διαγραφή σε ΔΔΑ Περίπτωση 2: Διαγραφή του 16 (ένα παιδί) Χαροκόπειο Πανεπιστήμιο 16/82

37 Διαγραφή σε ΔΔΑ Περίπτωση 2: Διαγραφή του 16 (ένα παιδί) Χαροκόπειο Πανεπιστήμιο 16/82

38 Διαγραφή σε ΔΔΑ Περίπτωση 2: Διαγραφή του 16 (ένα παιδί) Χαροκόπειο Πανεπιστήμιο 16/82

39 Διαγραφή σε ΔΔΑ Περίπτωση 2: Διαγραφή του 16 (ένα παιδί) Χαροκόπειο Πανεπιστήμιο 16/82

40 Διαγραφή σε ΔΔΑ Περίπτωση 2: Διαγραφή του 16 (ένα παιδί) Χαροκόπειο Πανεπιστήμιο 16/82

41 Διαγραφή σε ΔΔΑ Περίπτωση 3: Διαγραφή του 15 (δύο παιδιά) Χαροκόπειο Πανεπιστήμιο 17/82

42 Υπολογισμός του επόμενου κλειδιού της ρίζας Χρήσιμη ρουτίνα για την διαγραφή Το πρόβλημα Έχοντας ένα υποδέντρο θέλουμε να βρούμε τον κόμβο με το αμέσως επόμενο κλειδί από τη ρίζα του υποδέντρου. Χαροκόπειο Πανεπιστήμιο 18/82

43 Υπολογισμός του επόμενου κλειδιού της ρίζας Χαροκόπειο Πανεπιστήμιο 19/82

44 Υπολογισμός του επόμενου κλειδιού της ρίζας Χαροκόπειο Πανεπιστήμιο 19/82

45 Υπολογισμός του επόμενου κλειδιού της ρίζας Χαροκόπειο Πανεπιστήμιο 19/82

46 Υπολογισμός του επόμενου κλειδιού της ρίζας Ο επόμενος κόμβος της ρίζας έχει το πολύ ένα παιδί. Χαροκόπειο Πανεπιστήμιο 19/82

47 Διαγραφή σε ΔΔΑ Περίπτωση 3: Διαγραφή του 15 (δύο παιδιά) Χαροκόπειο Πανεπιστήμιο 20/82

48 Διαγραφή σε ΔΔΑ Περίπτωση 3: Διαγραφή του 15 (δύο παιδιά) Χαροκόπειο Πανεπιστήμιο 20/82

49 Διαγραφή σε ΔΔΑ Περίπτωση 3: Διαγραφή του 15 (δύο παιδιά) Χαροκόπειο Πανεπιστήμιο 20/82

50 Διαγραφή σε ΔΔΑ Περίπτωση 3: Διαγραφή του 15 (δύο παιδιά) Χαροκόπειο Πανεπιστήμιο 20/82

51 Διαγραφή σε ΔΔΑ Περίπτωση 3: Διαγραφή του 15 (δύο παιδιά) Χαροκόπειο Πανεπιστήμιο 20/82

52 Διαγραφή σε ΔΔΑ Περίπτωση 3: Διαγραφή του 15 (δύο παιδιά) Χαροκόπειο Πανεπιστήμιο 20/82

53 Διαγραφή σε ΔΔΑ Περίπτωση 3: Διαγραφή του 15 (δύο παιδιά) Χαροκόπειο Πανεπιστήμιο 20/82

54 Επιδόσεις Όλες οι λειτουργίες χρειάζονται χρόνο ανάλογο με το ύψος του δέντρου. Χαροκόπειο Πανεπιστήμιο 21/82

55 Προβλήματα Υπάρχουν πολλά δέντρα για τα ίδια αντικείμενα αριστερά η χειρότερη περίπτωση: ύψος h = O(n) δεξιά η καλύτερη περίπτωση: ύψος h = O(log n) Το δέντρο εξαρτάται από την σειρά της εισαγωγής και διαγραφής των στοιχείων του δέντρο, η οποία δεν είναι γνωστή εκ των προτέρων Χαροκόπειο Πανεπιστήμιο 22/82

56 Ισορροπημένα Δέντρα Αναζήτησης Balanced BSTs Δέντρα αναζήτησης τα οποία είναι ισορροπημένα ανά πάσα στιγμή ανεξάρτητα από την σειρά των εισαγωγών και διαγραφών στοιχείων. h = O(log n) Χαροκόπειο Πανεπιστήμιο 23/82

57 2-3-4 Δέντρα Αναζήτησης top-down Επιτρέπουμε κόμβους με 2, 3 ή 4 παιδιά (, 13] (13, + ] (, 13] (13, 29] (29, + ] (, 13] (13, 29] (29, 58] (58, + ] Χαροκόπειο Πανεπιστήμιο 24/82

58 2-3-4 Δέντρα Αναζήτησης top-down Ορισμός Ένα ισορροπημένο δέντρο αναζήτησης είναι ένα δέντρο το οποίο: είτε είναι κενό είτε αποτελείται από τρεις τύπους κόμβων: 2-κόμβους, 3-κόμβους και 4-κόμβους όλοι οι εξωτερικοί κόμβοι (nulls - κενοί σύνδεσμοι) ισαπέχουν από την ρίζα Χαροκόπειο Πανεπιστήμιο 25/82

59 Παράδειγμα Ισορροπημένου Δέντρου Χαροκόπειο Πανεπιστήμιο 26/82

60 Ύψος Ισορροπημένου Δέντρου Θεώρημα Ένα δέντρο αναζήτησης με n κλειδιά έχει ύψος O(log n). Απόδειξη Έστω h το ύψος του δέντρου. Χαροκόπειο Πανεπιστήμιο 27/82

61 Ύψος Ισορροπημένου Δέντρου Θεώρημα Ένα δέντρο αναζήτησης με n κλειδιά έχει ύψος O(log n). Απόδειξη Έστω h το ύψος του δέντρου. Κάθε επίπεδο i έχει τουλάχιστον 2 i κόμβους. Χαροκόπειο Πανεπιστήμιο 27/82

62 Ύψος Ισορροπημένου Δέντρου Θεώρημα Ένα δέντρο αναζήτησης με n κλειδιά έχει ύψος O(log n). Απόδειξη Έστω h το ύψος του δέντρου. Κάθε επίπεδο i έχει τουλάχιστον 2 i κόμβους. Άρα n h 1 = 2 h 1. Χαροκόπειο Πανεπιστήμιο 27/82

63 Ύψος Ισορροπημένου Δέντρου Θεώρημα Ένα δέντρο αναζήτησης με n κλειδιά έχει ύψος O(log n). Απόδειξη Έστω h το ύψος του δέντρου. Κάθε επίπεδο i έχει τουλάχιστον 2 i κόμβους. Άρα n h 1 = 2 h 1. Λογαριθμίζοντας πέρνουμε πως log 2 (n + 1) h. Χαροκόπειο Πανεπιστήμιο 27/82

64 Αναζήτηση σε Ισορροπημένο Δέντρο Αναζήτηση σε Δέντρο: Γενίκευση του αλγόριθμου για ΔΔΑ Χαροκόπειο Πανεπιστήμιο 28/82

65 Εισαγωγή σε Ισορροπημένο Δέντρο Διατηρώντας την ισορροπία! Τρέχουμε αναζήτηση για να δούμε που πρέπει να προστεθεί το νέο κλειδί: εάν η αναζήτηση τερματιστεί σε 2-κόμβο τον κάνουμε 3-κόμβο εάν η αναζήτηση τερματιστεί σε 3-κόμβο τον κάνουμε 4-κόμβο εάν η αναζήτηση τερματιστεί σε 4-κόμβο σπάμε τον 4-κόμβο σε δύο 2-κόμβους μεταβιβάζοντας το μεσαίο κλειδί προς τα επάνω και μετά προσθέτουμε το καινούριο κλειδί σε έναν από τους 2-κόμβους (μπορεί να χρειαστεί να κάνουμε το ίδιο και στον πατέρα, μέχρι την ρίζα) Χαροκόπειο Πανεπιστήμιο 29/82

66 Εισαγωγή σε Ισορροπημένο Δέντρο Τερματισμός σε 2-κόμβο (εισαγωγή του 14) Χαροκόπειο Πανεπιστήμιο 30/82

67 Εισαγωγή σε Ισορροπημένο Δέντρο Τερματισμός σε 2-κόμβο (εισαγωγή του 14) Χαροκόπειο Πανεπιστήμιο 30/82

68 Εισαγωγή σε Ισορροπημένο Δέντρο Τερματισμός σε 2-κόμβο (εισαγωγή του 14) Χαροκόπειο Πανεπιστήμιο 30/82

69 Εισαγωγή σε Ισορροπημένο Δέντρο Τερματισμός σε 2-κόμβο (εισαγωγή του 14) Χαροκόπειο Πανεπιστήμιο 30/82

70 Εισαγωγή σε Ισορροπημένο Δέντρο Τερματισμός σε 3-κόμβο (εισαγωγή του 10) Χαροκόπειο Πανεπιστήμιο 31/82

71 Εισαγωγή σε Ισορροπημένο Δέντρο Τερματισμός σε 3-κόμβο (εισαγωγή του 10) Χαροκόπειο Πανεπιστήμιο 31/82

72 Εισαγωγή σε Ισορροπημένο Δέντρο Τερματισμός σε 3-κόμβο (εισαγωγή του 10) Χαροκόπειο Πανεπιστήμιο 31/82

73 Εισαγωγή σε Ισορροπημένο Δέντρο Τερματισμός σε 3-κόμβο (εισαγωγή του 10) Χαροκόπειο Πανεπιστήμιο 31/82

74 Εισαγωγή σε Ισορροπημένο Δέντρο Τερματισμός σε 4-κόμβο (εισαγωγή του 4) Χαροκόπειο Πανεπιστήμιο 32/82

75 Εισαγωγή σε Ισορροπημένο Δέντρο Τερματισμός σε 4-κόμβο (εισαγωγή του 4) Χαροκόπειο Πανεπιστήμιο 32/82

76 Εισαγωγή σε Ισορροπημένο Δέντρο Τερματισμός σε 4-κόμβο (εισαγωγή του 4) Χαροκόπειο Πανεπιστήμιο 32/82

77 Εισαγωγή σε Ισορροπημένο Δέντρο Τερματισμός σε 4-κόμβο (εισαγωγή του 4) Χαροκόπειο Πανεπιστήμιο 32/82

78 Εισαγωγή σε Ισορροπημένο Δέντρο Τερματισμός σε 4-κόμβο (εισαγωγή του 4) Χαροκόπειο Πανεπιστήμιο 32/82

79 Εισαγωγή σε Ισορροπημένο Δέντρο Τερματισμός σε 4-κόμβο (εισαγωγή του 4) Χαροκόπειο Πανεπιστήμιο 32/82

80 Εισαγωγή σε Ισορροπημένο Δέντρο Τερματισμός σε 4-κόμβο (εισαγωγή του 4) Χαροκόπειο Πανεπιστήμιο 32/82

81 Εισαγωγή σε Ισορροπημένο Δέντρο Τερματισμός σε 4-κόμβο (εισαγωγή του 4) Υπάρχει όμως και η περίπτωση όπου και ο πατέρας είναι 4-κόμβος. Σε αυτήν την περίπτωση κάνουμε την ίδια διάσπαση ξανά, πιθανώς μέχρι την ρίζα Χαροκόπειο Πανεπιστήμιο 32/82

82 Εισαγωγή σε Ισορροπημένο Δέντρο Για να απλουστεύσουμε την διαδικασία εισαγωγής σε περίπτωση διάσπασης πολλών κόμβων, χρησιμοποιούμε την εξής τεχνική: φροντίζουμε η διαδρομή αναζήτησης να μη τερματίσει σε 4-κόμβο, χωρίζοντας κάθε 4-κόμβο που βρίσκουμε κατά την κάθοδο στο δέντρο Χαροκόπειο Πανεπιστήμιο 33/82

83 Εισαγωγή σε Ισορροπημένο Δέντρο Εισαγωγή του Χαροκόπειο Πανεπιστήμιο 34/82

84 Εισαγωγή σε Ισορροπημένο Δέντρο Εισαγωγή του Χαροκόπειο Πανεπιστήμιο 34/82

85 Εισαγωγή σε Ισορροπημένο Δέντρο Εισαγωγή του Χαροκόπειο Πανεπιστήμιο 34/82

86 Εισαγωγή σε Ισορροπημένο Δέντρο Εισαγωγή του Χαροκόπειο Πανεπιστήμιο 34/82

87 Εισαγωγή σε Ισορροπημένο Δέντρο Εισαγωγή του Χαροκόπειο Πανεπιστήμιο 34/82

88 Εισαγωγή σε Ισορροπημένο Δέντρο Εισαγωγή του Χαροκόπειο Πανεπιστήμιο 34/82

89 Εισαγωγή σε Ισορροπημένο Δέντρο Εισαγωγή του Χαροκόπειο Πανεπιστήμιο 34/82

90 Εισαγωγή σε Ισορροπημένο Δέντρο Εισαγωγή του Χαροκόπειο Πανεπιστήμιο 34/82

91 Εισαγωγή σε Ισορροπημένο Δέντρο Εισαγωγή του Χαροκόπειο Πανεπιστήμιο 34/82

92 Εισαγωγή σε Ισορροπημένο Δέντρο Εισαγωγή του Χαροκόπειο Πανεπιστήμιο 34/82

93 Εισαγωγή σε Ισορροπημένο Δέντρο Εισαγωγή του Χαροκόπειο Πανεπιστήμιο 34/82

94 Εισαγωγή σε Ισορροπημένο Δέντρο Εισαγωγή του Χαροκόπειο Πανεπιστήμιο 34/82

95 Εισαγωγή σε Ισορροπημένο Δέντρο Εισαγωγή του Χαροκόπειο Πανεπιστήμιο 34/82

96 Εισαγωγή σε Ισορροπημένο Δέντρο Εισαγωγή του Χαροκόπειο Πανεπιστήμιο 34/82

97 Εισαγωγή σε Ισορροπημένο Δέντρο Εισαγωγή του Χαροκόπειο Πανεπιστήμιο 34/82

98 Εισαγωγή σε Ισορροπημένο Δέντρο Εισαγωγή του Χαροκόπειο Πανεπιστήμιο 34/82

99 Εισαγωγή σε Ισορροπημένο Δέντρο Εισαγωγή του Χαροκόπειο Πανεπιστήμιο 34/82

100 Εισαγωγή σε Ισορροπημένο Δέντρο Εισαγωγή του Χαροκόπειο Πανεπιστήμιο 34/82

101 Εισαγωγή σε Ισορροπημένο Δέντρο Εισαγωγή του Χαροκόπειο Πανεπιστήμιο 34/82

102 Εισαγωγή σε Ισορροπημένο Δέντρο Εισαγωγή του Χαροκόπειο Πανεπιστήμιο 34/82

103 Εισαγωγή σε Ισορροπημένο Δέντρο Εισαγωγή του Χαροκόπειο Πανεπιστήμιο 34/82

104 Εισαγωγή σε Ισορροπημένο Δέντρο Εισαγωγή του Χαροκόπειο Πανεπιστήμιο 34/82

105 Εισαγωγή σε Ισορροπημένο Δέντρο Εισαγωγή του Χαροκόπειο Πανεπιστήμιο 34/82

106 Εισαγωγή σε Ισορροπημένο Δέντρο Εισαγωγή του Χαροκόπειο Πανεπιστήμιο 34/82

107 Εισαγωγή σε Ισορροπημένο Δέντρο Εισαγωγή του Χαροκόπειο Πανεπιστήμιο 34/82

108 Εισαγωγή σε Ισορροπημένο Δέντρο Εισαγωγή του Χαροκόπειο Πανεπιστήμιο 34/82

109 Εισαγωγή σε Ισορροπημένο Δέντρο Εισαγωγή του Χαροκόπειο Πανεπιστήμιο 34/82

110 Εισαγωγή σε Ισορροπημένο Δέντρο Εισαγωγή του Χαροκόπειο Πανεπιστήμιο 34/82

111 Εισαγωγή σε Ισορροπημένο Δέντρο Εισαγωγή του Χαροκόπειο Πανεπιστήμιο 34/82

112 Εισαγωγή σε Ισορροπημένο Δέντρο Εισαγωγή του Χαροκόπειο Πανεπιστήμιο 34/82

113 Διαγραφή σε Ισορροπημένο Δέντρο Διαγραφή από μη-φύλλο Κάνουμε αναγωγή του προβλήματος στο πρόβλημα διαγραφής από φύλλο Χρησιμοποιούμε την τεχνική των ΔΔΑ π.χ για διαγραφή του 25, το αντικαθιστούμε πρώτα με τον inorder successor (26) ή με τον inorder predecessor (20) Χαροκόπειο Πανεπιστήμιο 35/82

114 Διαγραφή σε Ισορροπημένο Δέντρο Διαγραφή από μη-φύλλο Κάνουμε αναγωγή του προβλήματος στο πρόβλημα διαγραφής από φύλλο Χρησιμοποιούμε την τεχνική των ΔΔΑ π.χ για διαγραφή του 25, το αντικαθιστούμε πρώτα με τον inorder successor (26) ή με τον inorder predecessor (20) Χαροκόπειο Πανεπιστήμιο 35/82

115 Διαγραφή σε Ισορροπημένο Δέντρο Διαγραφή από Φύλλο Το φύλλο έχει 2 κλειδιά (π.χ διαγραφή του 26 παρακάτω), δηλαδή είναι είτε 3-κόμβος, είτε 4-κόμβος. Έυκολη περίπτωση, απλά το διαγράφουμε Χαροκόπειο Πανεπιστήμιο 36/82

116 Διαγραφή σε Ισορροπημένο Δέντρο Διαγραφή από Φύλλο Το φύλλο έχει 2 κλειδιά (π.χ διαγραφή του 26 παρακάτω), δηλαδή είναι είτε 3-κόμβος, είτε 4-κόμβος. Έυκολη περίπτωση, απλά το διαγράφουμε Χαροκόπειο Πανεπιστήμιο 36/82

117 Διαγραφή σε Ισορροπημένο Δέντρο Διαγραφή από Φύλλο Το φύλλο έχει 1 κλειδί (underflow), δηλαδή είναι 2-κόμβος. κάποιος αδελφός κόμβος (sibling node) έχει 2 κλειδιά balance: π.χ διαγραφή του Χαροκόπειο Πανεπιστήμιο 37/82

118 Διαγραφή σε Ισορροπημένο Δέντρο Διαγραφή από Φύλλο Το φύλλο έχει 1 κλειδί (underflow), δηλαδή είναι 2-κόμβος. κάποιος αδελφός κόμβος (sibling node) έχει 2 κλειδιά balance: π.χ διαγραφή του Χαροκόπειο Πανεπιστήμιο 37/82

119 Διαγραφή σε Ισορροπημένο Δέντρο Διαγραφή από Φύλλο Το φύλλο έχει 1 κλειδί (underflow), δηλαδή είναι 2-κόμβος. κάποιος αδελφός κόμβος (sibling node) έχει 2 κλειδιά balance: π.χ διαγραφή του Χαροκόπειο Πανεπιστήμιο 37/82

120 Διαγραφή σε Ισορροπημένο Δέντρο Διαγραφή από Φύλλο Το φύλλο έχει 1 κλειδί (underflow), δηλαδή είναι 2-κόμβος. όλοι οι αδελφοί κόμβοι (sibling nodes) έχουν 1 κλειδί (είναι δηλαδή 2-κόμβοι) fusion: π.χ διαγραφή του Χαροκόπειο Πανεπιστήμιο 38/82

121 Διαγραφή σε Ισορροπημένο Δέντρο Διαγραφή από Φύλλο Το φύλλο έχει 1 κλειδί (underflow), δηλαδή είναι 2-κόμβος. όλοι οι αδελφοί κόμβοι (sibling nodes) έχουν 1 κλειδί (είναι δηλαδή 2-κόμβοι) fusion: π.χ διαγραφή του Χαροκόπειο Πανεπιστήμιο 38/82

122 Διαγραφή σε Ισορροπημένο Δέντρο Διαγραφή από Φύλλο Το φύλλο έχει 1 κλειδί (underflow), δηλαδή είναι 2-κόμβος. όλοι οι αδελφοί κόμβοι (sibling nodes) έχουν 1 κλειδί (είναι δηλαδή 2-κόμβοι) fusion: π.χ διαγραφή του Χαροκόπειο Πανεπιστήμιο 38/82

123 Διαγραφή σε Ισορροπημένο Δέντρο Διαγραφή από Φύλλο Ο πατέρας έχει τώρα και αυτός πρόβλημα (underflow) επαλαμβάνουμε ή balance ή fusion ανάλογα με τους αδελφούς κόμβους του Χαροκόπειο Πανεπιστήμιο 39/82

124 Διαγραφή σε Ισορροπημένο Δέντρο Διαγραφή από Φύλλο Ο πατέρας έχει τώρα και αυτός πρόβλημα (underflow) επαλαμβάνουμε ή balance ή fusion ανάλογα με τους αδελφούς κόμβους του Χαροκόπειο Πανεπιστήμιο 39/82

125 Διαγραφή σε Ισορροπημένο Δέντρο Διαγραφή από Φύλλο Ο πατέρας έχει τώρα και αυτός πρόβλημα (underflow) επαλαμβάνουμε ή balance ή fusion ανάλογα με τους αδελφούς κόμβους του Χαροκόπειο Πανεπιστήμιο 39/82

126 Διαγραφή σε Ισορροπημένο Δέντρο Το fusion μπορεί να γίνει μέχρι και την ρίζα. Σε περίπτωση που φτάσει στην ρίζα το ύψος του δέντρου μειώνεται κατά ένα. Η διαγραφή υλοποιείτε σε χρόνο O(log n). Χαροκόπειο Πανεπιστήμιο 40/82

127 Διαγραφή σε Ισορροπημένο Δέντρο Παράδειγμα αλυσιδωτής διαγραφής μέχρι την ρίζα Διαγραφή του κλειδιού 1 Χαροκόπειο Πανεπιστήμιο 41/82

128 Διαγραφή σε Ισορροπημένο Δέντρο Παράδειγμα αλυσιδωτής διαγραφής μέχρι την ρίζα Διαγραφή του κλειδιού 1 Χαροκόπειο Πανεπιστήμιο 41/82

129 Διαγραφή σε Ισορροπημένο Δέντρο Παράδειγμα αλυσιδωτής διαγραφής μέχρι την ρίζα Κόμβος με underflow - δοκιμάζουμε πρώτα balance και μετά fusion Χαροκόπειο Πανεπιστήμιο 41/82

130 Διαγραφή σε Ισορροπημένο Δέντρο Παράδειγμα αλυσιδωτής διαγραφής μέχρι την ρίζα Balance δεν γίνεται - οι γείτονες δεν έχουν επιπλέον κλειδιά Χαροκόπειο Πανεπιστήμιο 41/82

131 Διαγραφή σε Ισορροπημένο Δέντρο Παράδειγμα αλυσιδωτής διαγραφής μέχρι την ρίζα Fusion - χρησιμοποιούμε το κλειδί του αδελφού και του πατέρα Χαροκόπειο Πανεπιστήμιο 41/82

132 Διαγραφή σε Ισορροπημένο Δέντρο Παράδειγμα αλυσιδωτής διαγραφής μέχρι την ρίζα Κόμβος με underflow - ένα επίπεδο επάνω Χαροκόπειο Πανεπιστήμιο 41/82

133 Διαγραφή σε Ισορροπημένο Δέντρο Παράδειγμα αλυσιδωτής διαγραφής μέχρι την ρίζα Κόμβος με underflow - δοκιμάζουμε πρώτα balance και μετά fusion Χαροκόπειο Πανεπιστήμιο 41/82

134 Διαγραφή σε Ισορροπημένο Δέντρο Παράδειγμα αλυσιδωτής διαγραφής μέχρι την ρίζα Balance δεν γίνεται - οι γείτονες δεν έχουν επιπλέον κλειδιά Χαροκόπειο Πανεπιστήμιο 41/82

135 Διαγραφή σε Ισορροπημένο Δέντρο Παράδειγμα αλυσιδωτής διαγραφής μέχρι την ρίζα Fusion - χρησιμοποιούμε το κλειδί του αδελφού και του πατέρα Χαροκόπειο Πανεπιστήμιο 41/82

136 Διαγραφή σε Ισορροπημένο Δέντρο Παράδειγμα αλυσιδωτής διαγραφής μέχρι την ρίζα Κόμβος με underflow - ένα επίπεδο επάνω Χαροκόπειο Πανεπιστήμιο 41/82

137 Διαγραφή σε Ισορροπημένο Δέντρο Παράδειγμα αλυσιδωτής διαγραφής μέχρι την ρίζα Εαν η ρίζα έχει underflow - απλή διαγραφή Χαροκόπειο Πανεπιστήμιο 41/82

138 Διαγραφή σε Ισορροπημένο Δέντρο Παράδειγμα αλυσιδωτής διαγραφής μέχρι την ρίζα Εαν η ρίζα έχει underflow - απλή διαγραφή Χαροκόπειο Πανεπιστήμιο 41/82

139 2-3-4 Δέντρα θετικά: απλός αλγόριθμος εισαγωγής για διατήρηση ύψους πολυπλοκότητα O(log n) για εισαγωγή, διαγραφή και αναζήτηση αρνητικά: 3 διαφορετικοί κόμβοι πολύπλοκες διαδικασίες λόγω πολλών συνδέσμων, αντιγραφών συνδέσμων, κ.τ.λ Χαροκόπειο Πανεπιστήμιο 42/82

140 Κόκκινα-Μαύρα Δέντρα Ένα κόκκινο-μαύρο δέντρο είναι ένα δυαδικό δέντρο αναζήτησης (ΔΔΑ) με τις επιπλέον ιδιότητες: Κάθε κόμβος είναι ή κόκκινος ή μαύρος Η ρίζα είναι μαύρη Κανένας κόκκινος κόμβος δεν έχει κόκκινο παιδί Κάθε μονοπάτι από την ρίζα προς εξωτερικό κόμβο (null) περνάει από τον ίδιο αριθμό μαύρων κόμβων Χαροκόπειο Πανεπιστήμιο 43/82

141 Κόκκινα-Μαύρα Δέντρα Θεώρημα Ένα κόκκινο-μαύρο δέντρο με n κόμβους έχει ύψος O(log n). Αντί για απόδειξη θα δούμε μία αντιστοίχιση των κόκκινων/μαύρων δέντρων με τα δέντρα. Μπορούμε να δούμε τα κόκκινα-μαύρα δέντρα ως μία αναπαράσταση των δέντρων. Αυτή η αντιστοίχιση μας επιτρέπει να δείξουμε εύκολα τις ιδιότητες των κόκκινων-μαύρων δέντρων. Χαροκόπειο Πανεπιστήμιο 44/82

142 Κόκκινα-Μαύρα Δέντρα Χαροκόπειο Πανεπιστήμιο 45/82

143 Κόκκινα-Μαύρα Δέντρα Χαροκόπειο Πανεπιστήμιο 45/82

144 Κόκκινα-Μαύρα Δέντρα Αναζήτηση, εισαγωγή και διαγραφή Αναζήτηση Τα κόκκινα-μαύρα δέντρα είναι ΔΔΑ! Εισαγωγή και Διαγραφή Αντιστοιχία με τα δέντρα, απλά περιγράφουμε τις κινήσεις με αλλαγή χρωμάτων και περιστροφές. Χαροκόπειο Πανεπιστήμιο 46/82

145 Κόκκινα-Μαύρα Δέντρα Περιστροφές ΔΔΑ b a a b > b a a > a b > a b > b Χαροκόπειο Πανεπιστήμιο 47/82

146 Κόκκινα-Μαύρα Δέντρα Παράδειγμα Χαροκόπειο Πανεπιστήμιο 48/82

147 Κόκκινα-Μαύρα Δέντρα Παράδειγμα Χαροκόπειο Πανεπιστήμιο 48/82

148 Κόκκινα-Μαύρα Δέντρα Περιστροφές (πρώτη) Χαροκόπειο Πανεπιστήμιο 49/82

149 Κόκκινα-Μαύρα Δέντρα Περιστροφές (πρώτη) Χαροκόπειο Πανεπιστήμιο 49/82

150 Κόκκινα-Μαύρα Δέντρα Περιστροφές (πρώτη) Χαροκόπειο Πανεπιστήμιο 49/82

151 Κόκκινα-Μαύρα Δέντρα Περιστροφές (δεύτερη) Χαροκόπειο Πανεπιστήμιο 50/82

152 Κόκκινα-Μαύρα Δέντρα Περιστροφές (δεύτερη) Χαροκόπειο Πανεπιστήμιο 50/82

153 Κόκκινα-Μαύρα Δέντρα Περιστροφές (δεύτερη) Χαροκόπειο Πανεπιστήμιο 50/82

154 Κόκκινα-Μαύρα Δέντρα Περιστροφές (δεύτερη) Χαροκόπειο Πανεπιστήμιο 50/82

155 Κόκκινα-Μαύρα Δέντρα Περιστροφές Υπάρχουν και άλλες περιπτώσεις... Χαροκόπειο Πανεπιστήμιο 51/82

156 Κόκκινα-Μαύρα Δέντρα Χρόνοι Εισαγωγής και Διαγραφής Υπάρχουν αρκετοί πολύπλοκοι κανόνες! Όλοι όμως βγάζουν εύκολα νόημα εαν τους συνδέσουμε με το αντίστοιχο δέντρο. Η προσομοίωση των αλλαγών ενός κόμβου σε ένα δέντρο με τους αντίστοιχους κόμβους ενός κόκκινου-μαύρου δέντρου παίρνει O(1) χρόνο. Αφού τα δέντρα υποστηρίζουν εισαγωγή σε O(log n) χρόνο, το ίδιο ισχύει και για τα κόκκινα-μαύρα δέντρα. Η ίδια ιδέα λειτουργεί και για τις διαγραφές. Χαροκόπειο Πανεπιστήμιο 52/82

157 Κόκκινα-Μαύρα Δέντρα Ύψος Θεώρημα Ένα κόκκινο-μαύρο δέντρο με n κόμβους έχει ύψος O(log n). Απόδειξη Μπορούμε να μαζέψουμε όλους τους κόκκινους κόμβους στους γονείς τους, ώστε να μετατρέψουμε το δέντρο σε Το ύψος του δέντρου το πολύ να υποδιπλασιαστεί. Το δέντρο που προκύπτει έχει ύψος O(log n), και άρα το αρχικό κόκκινο/μαύρο δέντρο έχει ύψος 2 O(log n) = O(log n). Χαροκόπειο Πανεπιστήμιο 53/82

158 Άλλα Ισορροπημένα Δέντρα AVL δέντρα: O(log n) ύψος χρησιμοποιώντας περιστροφές splay δέντρα scapegoat δέντρα Χαροκόπειο Πανεπιστήμιο 54/82

159 AVL Δέντρα Το πρώτο ισοζυγισμένο δέντρο! G.M. Adelson-Velskii and E.M. Landis. An algorithm for the organization of information, Proceedings of the USSR Academy of Sciences 146: , Ονομάστηκε από τα αρχικά των συγγραφέων. Χαροκόπειο Πανεπιστήμιο 55/82

160 AVL Δέντρα Δυαδικό δέντρο αναζήτησης Επιπλέον συνθήκη ισορροπίας Η επιπλέον συνθήκη ισορροπίας πρέπει να διατηρείται εύκολα και να διατηρεί το ύψος του δέντρου σε O(log n). Χαροκόπειο Πανεπιστήμιο 56/82

161 AVL Δέντρα Ορισμός Ένα δέντρο AVL είναι ένα δυαδικό δέντρο αναζήτησης T όπου για κάθε κόμβο v T τα ύψη των υποδέντρων του διαφέρουν το πολύ κατά 1. Το ύψος του κενού υποδέντρου ορίζεται σε -1. Χαροκόπειο Πανεπιστήμιο 57/82

162 AVL Δέντρα Αριστερά AVL δέντρο, δεξιά μη-avl δέντρο. Χαροκόπειο Πανεπιστήμιο 58/82

163 AVL Δέντρα Ύψος Θεώρημα Ένα AVL δέντρο με n κλειδιά έχεις ύψος O(log n). Χαροκόπειο Πανεπιστήμιο 59/82

164 AVL Δέντρα Ύψος Θεώρημα Ένα AVL δέντρο με n κλειδιά έχεις ύψος O(log n). Απόδειξη Έστω n(h) ο ελάχιστος αριθμός κόμβων ενός AVL δέντρου με ύψος h. Χαροκόπειο Πανεπιστήμιο 59/82

165 AVL Δέντρα Ύψος Θεώρημα Ένα AVL δέντρο με n κλειδιά έχεις ύψος O(log n). Απόδειξη Έστω n(h) ο ελάχιστος αριθμός κόμβων ενός AVL δέντρου με ύψος h. Εύκολα φαίνεται πως n(1) = 1 και n(2) = 2. Για h > 2 ένα AVL δέντρο έχει την ρίζα και δύο υποδέντρα, ένα AVL υποδέντρο με ύψος h 1 και ένα AVL υποδέντρο με ύψος h 2. h-1 h-2 h Άρα n(h) = 1 + n(h 1) + n(h 2). Χαροκόπειο Πανεπιστήμιο 59/82

166 AVL Δέντρα Ύψος Θεώρημα Ένα AVL δέντρο με n κλειδιά έχεις ύψος O(log n). Απόδειξη Έστω n(h) ο ελάχιστος αριθμός κόμβων ενός AVL δέντρου με ύψος h. Επειδή n(h 1) > n(h 2) έχουμε πως n(h) = 1 + n(h 1) + n(h 2) > 2n(h 2) > 4n(h 4) > 8n(h 6) >... και μέσω αναγωγής n(h) > 2 i n(h 2i) Επειδή n(1) = 1 πέρνουμε πως n(h) > 2 (h 1)/2 και λογαριθμίζοντας πέρνουμε h < 2 log n(h) + 1. Χαροκόπειο Πανεπιστήμιο 59/82

167 Εισαγωγή σε AVL δέντρο Η εισαγωγή γίνεται κανονικά όπως και στα ΔΔΑ αλλά στην συνέχεια μπορεί να χρειαστεί να φτιάξουμε το δέντρο. Θα φροντίσουμε να κάνουμε O(d) πράξεις όπου d είναι το βάθος όπου γίνεται η εισαγωγή. Χαροκόπειο Πανεπιστήμιο 60/82

168 Εισαγωγή σε AVL δέντρο Θα φτιάξουμε το δέντρο με περιστροφές. Έστω x ο κόμβος με το μεγαλύτερο βάθος που είναι μη-ισοζυγισμένος. Υπάρχουν 4 περιπτώσεις ανάλογα με το αν η εισαγωγή είναι στο 1 αριστερό υποδέντρο του αριστερού παιδιού του x 2 δεξί υποδέντρο του αριστερού παιδιού του x 3 αριστερό υποδέντρο του δεξιού παιδιού του x 4 δεξί υποδέντρο του δεξιού παιδιού του x Οι περιπτώσεις 1&4 λύνονται με μονή περιστροφή ενώ οι περιπτώσεις 2&3 με διπλή περιστροφή. Χαροκόπειο Πανεπιστήμιο 61/82

169 Μονή Περιστροφή a b Z h h+1 X Y h X < b < Y < a < Z Χαροκόπειο Πανεπιστήμιο 62/82

170 Μονή Περιστροφή a b Z h h+1 X Y h X < b < Y < a < Z Χαροκόπειο Πανεπιστήμιο 62/82

171 Μονή Περιστροφή b a h+1 X Y h Z h X < b < Y < a < Z Χαροκόπειο Πανεπιστήμιο 62/82

172 Μονή Περιστροφή Χαροκόπειο Πανεπιστήμιο 63/82

173 Μονή Περιστροφή Χαροκόπειο Πανεπιστήμιο 63/82

174 Άλλες περιπτώσεις Στις περιπτώσεις 2&3 δεν λειτουργεί η μονή περιστροφή. a b Z h X h h+1 Y X < b < Y < a < Z Χαροκόπειο Πανεπιστήμιο 64/82

175 Άλλες περιπτώσεις Στις περιπτώσεις 2&3 δεν λειτουργεί η μονή περιστροφή. b a X h h+1 Y Z h X < b < Y < a < Z Χαροκόπειο Πανεπιστήμιο 64/82

176 Διπλή Περιστροφή a b c h Z X h Y 1 h Y 2 h-1 X < b < Y 1 < c < Y 2 < a < Z Χαροκόπειο Πανεπιστήμιο 65/82

177 Διπλή Περιστροφή a b c h Z X h Y 1 h Y 2 h-1 X < b < Y 1 < c < Y 2 < a < Z Χαροκόπειο Πανεπιστήμιο 65/82

178 Διπλή Περιστροφή a c b Y 2 h-1 h Z X h Y 1 h X < b < Y 1 < c < Y 2 < a < Z Χαροκόπειο Πανεπιστήμιο 65/82

179 Διπλή Περιστροφή a c b Y 2 h-1 h Z X h Y 1 h X < b < Y 1 < c < Y 2 < a < Z Χαροκόπειο Πανεπιστήμιο 65/82

180 Διπλή Περιστροφή c b a h-1 X h h Y 2 Y 1 Z h X < b < Y 1 < c < Y 2 < a < Z Χαροκόπειο Πανεπιστήμιο 65/82

181 Διαγραφή Η διαγραφή στοιχείων από ένα AVL δέντρο γίνεται με τον ίδιο τρόπο όπως και σε ΔΔΑ με επιπλέον πιθανές περιστροφές. O(log n) στην χειρότερη περίπτωση Χαροκόπειο Πανεπιστήμιο 66/82

182 Ιεραρχία Μνήμης (Χρονιά 2010) Υπάρχει μεγάλο δίλημα μεταξύ ταχύτητας και μεγέθους όσο αφορά την μνήμη. SRAM (Static Random Access Memory) Φτιάχνονται οι καταχωρητές Πολύ γρήγορη (1ns = 10 9 sec - αντέχει ταχύτητες GHz) Πολύ ακριβή (1GB 5000$) DRAM (Dynamic Random Access Memory) Φτιάχνεται η μνήμη Γρήγορη (25ns) Λιγότερο ακριβή (16GB 100$) Σκληρός Δίσκος Πολύ αργός (5ms = sec) Πολύ φθηνός Χαροκόπειο Πανεπιστήμιο 67/82

183 Ιεραρχία Μνήμης (Χρονιά 2010) Ιδέα: Χρησιμοποίησε πολλούς τύπους μνήμης για καλύτερη απόδοση. Registers L1 Cache L2 Cache Main Memory Solid State Disks Hard Disks Tapes ns 1-5ns 5-25ns ns ns 2-20ms sequential access Χαροκόπειο Πανεπιστήμιο 68/82

184 Εξωτερική Μνήμη seek time: χρόνος ώστε οι κεφαλές να μετακινηθούν στο κατάλληλο σημείο (track) rotational delay: χρόνος αναμονής ώστε να περιστραφεί o κύλινδρος και να έρθει το κατάλληλο sector που ψάχνουμε Χαροκόπειο Πανεπιστήμιο 69/82

185 Εξωτερική Μνήμη η μνήμη των υπολογιστών (DRAM) έχει χρόνο πρόσβασης της τάξης των nanoseconds: 10 9 sec, πχ nsec οι δίσκοι έχουν χρόνο πρόσβασης της τάξης των milliseconds: 10 3, πχ 2-20 ms Συμπέρασμα Δεν συμφέρει να διαβάζουμε λίγα δεδομένα από το δίσκο. Για αυτό τον λόγο οι δίσκοι διαβάζουν πάντα ένα block που είναι της τάξης των Kilobytes, πχ 512K. Χαροκόπειο Πανεπιστήμιο 70/82

186 Βήτα Δέντρα δομή αναζήτησης η οποία είναι αποτελεσματική για αποθήκευση σε δίσκο, γενικεύει τα δέντρα σε δέντρα με κόμβους μεταξύ t και 2t για t 2. Χαροκόπειο Πανεπιστήμιο 71/82

187 Ορισμός Βήτα Δέντρων Ένα δέντρο B-tree είναι ένα δέντρο με ρίζα και τις εξής ιδιότητες: 1 κάθε κόμβος x έχει τα εξής πεδία: (a) n[x], ο αριθμός των κλειδιών που έχει ο κόμβος x (b) τα n[x] κλειδιά σε σειρά: key 1 [x] key 2 [x]... key n[x] [x] (c) τιμή leaf[x] που είναι αλήθεια αν και μόνο αν ο κόμβος x είναι φύλλο Χαροκόπειο Πανεπιστήμιο 72/82

188 Ορισμός Βήτα Δέντρων Ένα δέντρο B-tree είναι ένα δέντρο με ρίζα και τις εξής ιδιότητες: 1 κάθε κόμβος x έχει τα εξής πεδία: (a) n[x], ο αριθμός των κλειδιών που έχει ο κόμβος x (b) τα n[x] κλειδιά σε σειρά: key 1 [x] key 2 [x]... key n[x] [x] (c) τιμή leaf[x] που είναι αλήθεια αν και μόνο αν ο κόμβος x είναι φύλλο 2 εαν ο x είναι εσωτερικός κόμβος περιέχει n[x] + 1 δείκτες c 1[x], c 2[x],..., c n[x]+1 [x] στα παιδιά του. Τα φύλλα δεν έχουν παιδιά οπότε οι δείκτες αυτοί δεν ορίζονται. Χαροκόπειο Πανεπιστήμιο 72/82

189 Ορισμός Βήτα Δέντρων Ένα δέντρο B-tree είναι ένα δέντρο με ρίζα και τις εξής ιδιότητες: 1 κάθε κόμβος x έχει τα εξής πεδία: (a) n[x], ο αριθμός των κλειδιών που έχει ο κόμβος x (b) τα n[x] κλειδιά σε σειρά: key 1 [x] key 2 [x]... key n[x] [x] (c) τιμή leaf[x] που είναι αλήθεια αν και μόνο αν ο κόμβος x είναι φύλλο 2 εαν ο x είναι εσωτερικός κόμβος περιέχει n[x] + 1 δείκτες c 1[x], c 2[x],..., c n[x]+1 [x] στα παιδιά του. Τα φύλλα δεν έχουν παιδιά οπότε οι δείκτες αυτοί δεν ορίζονται. 3 Τα κλειδιά key i [x] χωρίζουν τις κλίμακες των κλειδιών που αποθηκεύονται σε κάθε υποδέντρο: εαν το k i είναι ένα κλειδί που αποθηκεύεται στο υποδέντρο με ρίζα c i [x] k 1 key 1 [x] k 2 key 2 [x] key n[x] [x] k n[x]+1. Χαροκόπειο Πανεπιστήμιο 72/82

190 Ορισμός Βήτα Δέντρων 4 Κάθε φύλλο έχει το ίδιο βάθος, το ύψος του δέντρου h. Χαροκόπειο Πανεπιστήμιο 73/82

191 Ορισμός Βήτα Δέντρων 4 Κάθε φύλλο έχει το ίδιο βάθος, το ύψος του δέντρου h. 5 Έστω t 2 ο ελάχιστος βαθμός του δέντρου: 1 Κάθε κόμβος εκτός της ρίζας πρέπει να έχει τουλάχιστον t 1 κλειδιά (δηλαδή τουλάχιστον t παιδιά). Εαν το δέντρο είναι μη-κενό, η ρίζα πρέπει να έχει τουλάχιστον ένα κλειδί. 2 Κάθε κόμβος μπορεί να περιέχει μέχρι 2t 1 κλειδιά, δηλαδή το πολύ 2t παιδιά. Ένας κόμβος λέγεται γεμάτος (full) εαν περιέχει ακριβώς 2t 1 κλειδιά. Χαροκόπειο Πανεπιστήμιο 73/82

192 Ορισμός Βήτα Δέντρων 4 Κάθε φύλλο έχει το ίδιο βάθος, το ύψος του δέντρου h. 5 Έστω t 2 ο ελάχιστος βαθμός του δέντρου: 1 Κάθε κόμβος εκτός της ρίζας πρέπει να έχει τουλάχιστον t 1 κλειδιά (δηλαδή τουλάχιστον t παιδιά). Εαν το δέντρο είναι μη-κενό, η ρίζα πρέπει να έχει τουλάχιστον ένα κλειδί. 2 Κάθε κόμβος μπορεί να περιέχει μέχρι 2t 1 κλειδιά, δηλαδή το πολύ 2t παιδιά. Ένας κόμβος λέγεται γεμάτος (full) εαν περιέχει ακριβώς 2t 1 κλειδιά. Το πιο απλό Βήτα-δέντρο είναι για t = 2. Κάθε εσωτερικός κόμβος έχει 2, 3 ή 4 παιδιά δηλαδή ένα δέντρο. Στην πράξη όμως έχουμε πολύ μεγαλύτερες τιμές για το t. Χαροκόπειο Πανεπιστήμιο 73/82

193 Ύψος Βήτα Δέντρου Θεώρημα Ένα Βήτα δέντρο με n 1 κλειδιά και ελάχιστο βαθμό t 2 έχει ύψος n + 1 h log t. 2 Απόδειξη Ένα Βήτα δέντρο με ύψος h έχει ελάχιστο αριθμό κόμβων αν η ρίζα έχει ένα κλειδί και όλοι οι υπόλοιποι κόμβοι t 1 κλειδιά. Στο επίπεδο 0 υπάρχει ένα κόμβος. Στο επίπεδο 1 υπάρχουν 2 κόμβοι. Στο επίπεδο 2 υπάρχουν 2t κόμβοι, στο επίπεδο 3 υπάρχουν 2t 2 κόμβοι, κ.τ.λ Χαροκόπειο Πανεπιστήμιο 74/82

194 Ύψος Βήτα Δέντρου Θεώρημα Ένα Βήτα δέντρο με n 1 κλειδιά και ελάχιστο βαθμό t 2 έχει ύψος n + 1 h log t. 2 Απόδειξη Ο αριθμός λοιπόν των κλειδιών είναι: n 1 + (t 1) = 1 + 2(t 1) = 2t h 1 h i=1 2t i 1 ( t h 1 t 1 ) Χαροκόπειο Πανεπιστήμιο 74/82

195 Προσπελάσεις Δίσκου Φροντίζοντας κάθε κόμβος να χωρά σε μια σελίδα δίσκου, κάνουμε τόσες προσπελάσεις δίσκου όσες και το ύψος του δέντρου κόµβος 1000 κλειδιά 1001 κόµβοι κλειδιά κόµβοι κλειδιά Το δέντρο έχει ύψος O(log t n). Χαροκόπειο Πανεπιστήμιο 75/82

196 Βασικές Παραδοχές για Υλοποίηση Βήτα Δέντρων (i) Η ρίζα του Βήτα δέντρου θα είναι πάντα στην μνήμη (ii) Θα έχουμε δύο συναρτήσεις που διαβάζουν και γράφουν έναν κόμβο στον σκληρό δίσκο DISK READ(x) DISK WRITE(x) Χαροκόπειο Πανεπιστήμιο 76/82

197 Αναζήτηση σε Βήτα Δέντρο Η αναζήτηση δουλεύει όπως και στα ΔΔΑ (Δυαδικά Δέντρα Αναζήτησης) μόνο που τώρα έχουμε περισσότερες επιλογές σε κάθε κόμβο. B TREE SEARCH(x, k) i = 1 while i n[x] and k > key i [x] do i = i + 1 end if i n[x] and k = key i [x] then return (x, i) end if leaf[x] then return nil else DISK READ(c i [x]) end return B TREE SEARCH(c i [x], k) Χαροκόπειο Πανεπιστήμιο 77/82

198 Εισαγωγή σε Βήτα Δέντρα Καθώς αναζητούμε την θέση εισαγωγής ενός στοιχείου, διαιρούμε στα δύο οποιουσδήποτε κόμβους είναι γεμάτοι (έχουν 2t 1 κλειδιά). Όταν διαιρείται ένας κόμβος το μεσαίο κλειδί ανεβαίνει προς τα επάνω. Με αυτό τον τρόπο κάνουμε χώρο για πιθανές διαιρέσεις κόμβων που βρίσκονται παρακάτω. Χαροκόπειο Πανεπιστήμιο 78/82

199 Διαίρεση κόμβου (split) t = 4 x keyi 1[x] keyi[x] N W x keyi 1[x] keyi[x] keyi+1[x] N S W y = ci[x] P Q R S T U V y = ci[x] P Q R z = ci+1[x] T U V T 1 T 2 T 3 T 4 T 5 T 6 T 7 T 8 T 1 T 2 T 3 T 4 T 5 T 6 T 7 T 8 Χαροκόπειο Πανεπιστήμιο 79/82

200 Παράδειγμα t = 3 G M P X A C D E J K N O R S T U V Y Z Χαροκόπειο Πανεπιστήμιο 80/82

201 Παράδειγμα t = 3, εισαγωγή του B G M P X A B C D E J K N O R S T U V Y Z Χαροκόπειο Πανεπιστήμιο 80/82

202 Παράδειγμα t = 3, εισαγωγή του Q G M P T X A B C D E J K N O Q R S U V Y Z Χαροκόπειο Πανεπιστήμιο 80/82

203 Παράδειγμα t = 3, εισαγωγή του L P G M T X A B C D E J K L N O Q R S U V Y Z Χαροκόπειο Πανεπιστήμιο 80/82

204 Παράδειγμα t = 3, εισαγωγή του F P C G M T X A B D E F J K L N O Q R S U V Y Z Χαροκόπειο Πανεπιστήμιο 80/82

205 Διαγραφή από Β-Δέντρα Λειτουργεί με παρόμοιο τρόπο με τα δέντρα. Μπορεί να χρειαστεί να κάνουμε balance fuse Χαροκόπειο Πανεπιστήμιο 81/82

206 Διάβασμα και Επιπλέον Πηγές Ενότητες 7.1, 7.2, 7.3 Kurt Mehlhorn και Peter Sanders. Αλγόριθμοι και Δομές Δεδομένων, Τα βασικά εργαλεία, Έκδοση 1η, Κλειδάριθμος, Ενότητες 12.5, 12.6, 12.8, 12.9, 13.3, 13.4, 16.3 Robert Sedgewick. Αλγόριθμοι σε C: Θεμελιώδεις Έννοιες, Δομές Δεδομένων, Ταξινόμηση, Αναζήτηση. Έκδοση 3η, Κλειδάριθμος, Ενότητες 12.1, 12.2, 12.3, 13.1, 13.2, 13.3, 13.4 Cormen, Leiserson, Rivest και Stein, Εισαγωγή στους Αλγορίθμους (σε ένα τόμο). Έκδοση 1η, Πανεπιστημιακές Εκδόσεις Κρήτης, Χαροκόπειο Πανεπιστήμιο 82/82

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Δέντρα Αναζήτησης. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Δέντρα Αναζήτησης. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Δομές Δεδομένων Δέντρα Αναζήτησης Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Το πρόβλημα Αναζήτηση Θέλουμε να διατηρήσουμε αντικείμενα με κλειδιά και να μπορούμε εκτός από

Διαβάστε περισσότερα

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Γραφήματα. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Γραφήματα. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Δομές Δεδομένων Γραφήματα Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Γραφήματα Κατευθυνόμενο Γράφημα Ένα κατευθυνόμενο γράφημα G είναι ένα ζευγάρι (V, E) όπου V είναι ένα

Διαβάστε περισσότερα

Δυαδικά Δένδρα Αναζήτησης, Δένδρα AVL

Δυαδικά Δένδρα Αναζήτησης, Δένδρα AVL Δυαδικά Δένδρα Αναζήτησης, Δένδρα AVL Υλικό από τις σηµειώσεις Ν. Παπασπύρου, 2006 Δέντρα δυαδικής αναζήτησης Δενδρικές δοµές δεδοµένων στις οποίες Όλα τα στοιχεία στο αριστερό υποδέντρο της ρίζας είναι

Διαβάστε περισσότερα

Δένδρα Αναζήτησης Πολλαπλής Διακλάδωσης

Δένδρα Αναζήτησης Πολλαπλής Διακλάδωσης Δένδρα Αναζήτησης Πολλαπλής Διακλάδωσης Δένδρα στα οποία κάθε κόμβος μπορεί να αποθηκεύει ένα ή περισσότερα κλειδιά. Κόμβος με d διακλαδώσεις : k 1 k 2 k 3 k 4 d-1 διατεταγμένα κλειδιά d διατεταγμένα παιδιά

Διαβάστε περισσότερα

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 6. Δυαδικά Δέντρα 2 ομές εδομένων 4 5 Χρήστος ουλκερίδης Τμήμα Ψηφιακών Συστημάτων 18/11/2016 Εισαγωγή Τα

Διαβάστε περισσότερα

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Ουρές Προτεραιότητας. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Ουρές Προτεραιότητας. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Δομές Δεδομένων Ουρές Προτεραιότητας Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ουρά Προτεραιότητας Το πρόβλημα Έχουμε αντικείμενα με κλειδιά και θέλουμε ανά πάσα στιγμή

Διαβάστε περισσότερα

Διδάσκων: Παναγιώτης Ανδρέου

Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 12: Δέντρα ΙΙ -Δυαδικά Δέντρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Δυαδικά Δένδρα - Δυαδικά Δένδρα Αναζήτησης(ΔΔΑ) - Εύρεση Τυχαίου, Μέγιστου, Μικρότερου στοιχείου - Εισαγωγή

Διαβάστε περισσότερα

Διάλεξη 12: Δέντρα ΙΙ Δυαδικά Δέντρα

Διάλεξη 12: Δέντρα ΙΙ Δυαδικά Δέντρα Διάλεξη 12: Δέντρα ΙΙ Δυαδικά Δέντρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Δυαδικά Δένδρα Δυαδικά Δένδρα Αναζήτησης (ΔΔΑ) Εύρεση Τυχαίου, Μέγιστου, Μικρότερου στοιχείου Εισαγωγή στοιχείου

Διαβάστε περισσότερα

Ισορροπημένα Δένδρα. για κάθε λειτουργία; Ισορροπημένο δένδρο : Διατηρεί ύψος κάθε εισαγωγή ή διαγραφή

Ισορροπημένα Δένδρα. για κάθε λειτουργία; Ισορροπημένο δένδρο : Διατηρεί ύψος κάθε εισαγωγή ή διαγραφή Ισορροπημένα Δένδρα Μπορούμε να επιτύχουμε για κάθε λειτουργία; χρόνο εκτέλεσης Ισορροπημένο δένδρο : Διατηρεί ύψος κάθε εισαγωγή ή διαγραφή μετά από Περιστροφές x αριστερή περιστροφή από το x y α β y

Διαβάστε περισσότερα

AVL-trees C++ implementation

AVL-trees C++ implementation Τ Μ Η Μ Α Μ Η Χ Α Ν Ι Κ Ω Ν Η / Υ Κ Α Ι Π Λ Η Ρ Ο Φ Ο Ρ Ι Κ Η Σ AVL-trees C++ implementation Δομές Δεδομένων Μάριος Κενδέα 31 Μαρτίου 2015 kendea@ceid.upatras.gr Εισαγωγή (1/3) Δυαδικά Δένδρα Αναζήτησης:

Διαβάστε περισσότερα

Διάλεξη 13: Δέντρα ΙΙΙ - Ισοζυγισμένα Δέντρα, AVL Δέντρα

Διάλεξη 13: Δέντρα ΙΙΙ - Ισοζυγισμένα Δέντρα, AVL Δέντρα ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 1 Διάλεξη 13: Δέντρα ΙΙΙ - Ισοζυγισμένα Δέντρα, AVL Δέντρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Ισοζυγισμένα Δέντρα - Υλοποίηση AVL-δέντρων

Διαβάστε περισσότερα

Διάλεξη 22: Δυαδικά Δέντρα. Διδάσκων: Παναγιώτης Ανδρέου

Διάλεξη 22: Δυαδικά Δέντρα. Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 22: Δυαδικά Δέντρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Δυαδικά Δένδρα - Δυαδικά Δένδρα Αναζήτησης - Πράξεις Εισαγωγής, Εύρεσης Στοιχείου, Διαγραφής Μικρότερου Στοιχείου

Διαβάστε περισσότερα

Διάλεξη 17: Δυαδικά Δέντρα. Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

Διάλεξη 17: Δυαδικά Δέντρα. Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ Διάλεξη 7: Δυαδικά Δέντρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Δυαδικά Δένδρα Δυαδικά Δένδρα Αναζήτησης Πράξεις Εισαγωγής, Εύρεσης Στοιχείου, Διαγραφής Μικρότερου Στοιχείου Διδάσκων:

Διαβάστε περισσότερα

Εισαγωγή ενός νέου στοιχείου. Επιλογή i-οστoύ στοιχείου : Εύρεση στοιχείου με το i-οστό μικρότερο κλειδί

Εισαγωγή ενός νέου στοιχείου. Επιλογή i-οστoύ στοιχείου : Εύρεση στοιχείου με το i-οστό μικρότερο κλειδί Δομές Αναζήτησης Χειριζόμαστε ένα σύνολο στοιχείων κλειδί από ολικά διατεταγμένο σύνολο όπου το κάθε στοιχείο έχει ένα Θέλουμε να υποστηρίξουμε δύο βασικές λειτουργίες: Εισαγωγή ενός νέου στοιχείου με

Διαβάστε περισσότερα

Διδάσκων: Κωνσταντίνος Κώστα

Διδάσκων: Κωνσταντίνος Κώστα Διάλεξη Ε4: Επανάληψη Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγή σε δενδρικές δομές δεδομένων, Δυαδικά Δένδρα Αναζήτησης Ισοζυγισμένα Δένδρα & 2-3 Δένδρα Διδάσκων: Κωνσταντίνος

Διαβάστε περισσότερα

Διάλεξη 13: Δέντρα ΙΙΙ Ισοζυγισμένα Δέντρα, AVL Δέντρα

Διάλεξη 13: Δέντρα ΙΙΙ Ισοζυγισμένα Δέντρα, AVL Δέντρα Διάλεξη 13: Δέντρα ΙΙΙ Ισοζυγισμένα Δέντρα, AVL Δέντρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Ισοζυγισμένα Δέντρα Υλοποίηση AVL δέντρων Εισαγωγή Κόμβων και Περιστροφές σε AVL δέντρα

Διαβάστε περισσότερα

Διάλεξη 13: Δέντρα ΙΙΙ Ισοζυγισμένα Δέντρα, AVL Δέντρα. Διδάσκων: Παναγιώτης Ανδρέου

Διάλεξη 13: Δέντρα ΙΙΙ Ισοζυγισμένα Δέντρα, AVL Δέντρα. Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 13: Δέντρα ΙΙΙ Ισοζυγισμένα Δέντρα, AVL Δέντρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Ισοζυγισμένα Δέντρα Υλοποίηση AVL δέντρων Εισαγωγή Κόμβων και Περιστροφές σε AVL δέντρα

Διαβάστε περισσότερα

ιαφάνειες παρουσίασης #10 (β)

ιαφάνειες παρουσίασης #10 (β) ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ http://www.softlab.ntua.gr/~nickie/courses/progtech/ ιδάσκοντες: Γιάννης Μαΐστρος (maistros@cs.ntua.gr) Στάθης Ζάχος (zachos@cs.ntua.gr) Νίκος Παπασπύρου (nickie@softlab.ntua.gr)

Διαβάστε περισσότερα

Διάλεξη 14: Δέντρα IV - B-Δένδρα

Διάλεξη 14: Δέντρα IV - B-Δένδρα ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 1 Διάλεξη 14: Δέντρα IV - B-Δένδρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - 2-3 Δένδρα, Εισαγωγή και άλλες πράξεις - Άλλα Δέντρα: Β-δένδρα, Β+-δέντρα,

Διαβάστε περισσότερα

Ισοζυγισμένα υαδικά έντρα Αναζήτησης

Ισοζυγισμένα υαδικά έντρα Αναζήτησης Ισοζυγισμένα υαδικά έντρα Αναζήτησης ομές εδομένων 3ο εξάμηνο ιδάσκων: Χρήστος ουλκερίδης ιαφάνειες προσαρμοσμένες από το υλικό της Μαρίας Χαλκίδη Ισοζυγισμένα υαδικά έντρα Αναζήτησης Ισοζυγισμένα Α είναι

Διαβάστε περισσότερα

Δομές Δεδομένων και Αλγόριθμοι

Δομές Δεδομένων και Αλγόριθμοι Δομές Δεδομένων και Αλγόριθμοι Χρήστος Γκόγκος ΤΕΙ Ηπείρου Χειμερινό Εξάμηνο 2014-2015 Παρουσίαση 16 Δένδρα (Trees) 1 / 42 Δένδρα (Trees) Ένα δένδρο είναι ένα συνδεδεμένο γράφημα χωρίς κύκλους Για κάθε

Διαβάστε περισσότερα

Διάλεξη 18: B-Δένδρα

Διάλεξη 18: B-Δένδρα Διάλεξη 18: B-Δένδρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγή & Ισοζυγισμένα Δένδρα 2-3 Δένδρα, Περιγραφή Πράξεων της Εισαγωγής και άλλες πράξεις Β-δένδρα Διδάσκων: Κωνσταντίνος

Διαβάστε περισσότερα

Ισορροπημένα Δένδρα. για κάθε λειτουργία; Ισορροπημένο δένδρο : Διατηρεί ύψος κάθε εισαγωγή ή διαγραφή

Ισορροπημένα Δένδρα. για κάθε λειτουργία; Ισορροπημένο δένδρο : Διατηρεί ύψος κάθε εισαγωγή ή διαγραφή Ισορροπημένα Δένδρα Μπορούμε να επιτύχουμε για κάθε λειτουργία; χρόνο εκτέλεσης Ισορροπημένο δένδρο : Διατηρεί ύψος κάθε εισαγωγή ή διαγραφή μετά από Περιστροφές x αριστερή περιστροφή από το x y α β y

Διαβάστε περισσότερα

Δομές Δεδομένων. Ενότητα 13: B-Δέντρα/AVL-Δέντρα. Καθηγήτρια Μαρία Σατρατζέμη. Τμήμα Εφαρμοσμένης Πληροφορικής. Δομές Δεδομένων

Δομές Δεδομένων. Ενότητα 13: B-Δέντρα/AVL-Δέντρα. Καθηγήτρια Μαρία Σατρατζέμη. Τμήμα Εφαρμοσμένης Πληροφορικής. Δομές Δεδομένων Ενότητα 13: B-Δέντρα/AVL-Δέντρα Καθηγήτρια Μαρία Σατρατζέμη Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε

Διαβάστε περισσότερα

έντρα ομές εδομένων 3ο εξάμηνο ιδάσκων: Χρήστος ουλκερίδης ιαφάνειες προσαρμοσμένες από το υλικό της Μαρίας Χαλκίδη

έντρα ομές εδομένων 3ο εξάμηνο ιδάσκων: Χρήστος ουλκερίδης ιαφάνειες προσαρμοσμένες από το υλικό της Μαρίας Χαλκίδη έντρα 2-3-4 ομές εδομένων 3ο εξάμηνο ιδάσκων: Χρήστος ουλκερίδης ιαφάνειες προσαρμοσμένες από το υλικό της Μαρίας Χαλκίδη Σημερινό Μάθημα 2-3-4 έντρα Ισοζυγισμένα δέντρα αναζήτησης έντρα αναζήτησης πολλαπλών

Διαβάστε περισσότερα

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Δυναμικός Κατακερματισμός Βάσεις Δεδομένων 2013-2014 Ευαγγελία Πιτουρά 1 Κατακερματισμός Τι αποθηκεύουμε στους κάδους; Στα παραδείγματα δείχνουμε μόνο την τιμή του πεδίου κατακερματισμού Την ίδια την εγγραφή

Διαβάστε περισσότερα

Red-Black Δέντρα. Red-Black Δέντρα

Red-Black Δέντρα. Red-Black Δέντρα Red-Black Δέντρα v 6 3 8 4 z Red-Black Δέντρα Περίληψη Από τα (2,4) δέντρα στα red-black δέντρα Red-black δέντρο Ορισμός Ύψος Εισαγωγή αναδόμηση επαναχρωματισμός Διαγραφή αναδόμηση επαναχρωματισμός προσαρμογή

Διαβάστε περισσότερα

Κεφ.11: Ευρετήρια και Κατακερματισμός

Κεφ.11: Ευρετήρια και Κατακερματισμός Κεφ.11: Ευρετήρια και Κατακερματισμός Database System Concepts, 6 th Ed. See www.db-book.com for conditions on re-use Κεφ. 11: Ευρετήρια-Βασική θεωρία Μηχανισμοί ευρετηρίου χρησιμοποιούνται για την επιτάχυνση

Διαβάστε περισσότερα

Διάλεξη 14: Δέντρα IV B Δένδρα. Διδάσκων: Παναγιώτης Ανδρέου

Διάλεξη 14: Δέντρα IV B Δένδρα. Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 14: Δέντρα IV B Δένδρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: 2 3 Δένδρα, Εισαγωγή και άλλες πράξεις Άλλα Δέντρα: Β δένδρα, Β+ δέντρα, R δέντρα Διδάσκων: Παναγιώτης Ανδρέου ΕΠΛ231

Διαβάστε περισσότερα

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Κατακερματισμός. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Κατακερματισμός. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Δομές Δεδομένων Κατακερματισμός Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Λεξικό Dictionary Ένα λεξικό (dictionary) είναι ένας αφηρημένος τύπος δεδομένων (ΑΤΔ) που διατηρεί

Διαβάστε περισσότερα

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Δυναμικός Κατακερματισμός Βάσεις Δεδομένων 2017-2018 1 Κατακερματισμός Πρόβλημα στατικού κατακερματισμού: Έστω Μ κάδους και r εγγραφές ανά κάδο - το πολύ Μ * r εγγραφές (αλλιώς μεγάλες αλυσίδες υπερχείλισης)

Διαβάστε περισσότερα

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΛΥΣΗ ΣΤΗΝ ΕΥΤΕΡΗ ΑΣΚΗΣΗ

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΛΥΣΗ ΣΤΗΝ ΕΥΤΕΡΗ ΑΣΚΗΣΗ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΛΥΣΗ ΣΤΗΝ ΕΥΤΕΡΗ ΑΣΚΗΣΗ ΜΑΘΗΜΑ ΒΑΣΕΙΣ Ε ΟΜΕΝΩΝ ΑΚΑ. ΕΤΟΣ 2012-13 Ι ΑΣΚΟΝΤΕΣ Ιωάννης Βασιλείου Καθηγητής, Τοµέας Τεχνολογίας

Διαβάστε περισσότερα

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Συμβολοσειρές. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Συμβολοσειρές. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Δομές Δεδομένων Συμβολοσειρές Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Συμβολοσειρές Συμβολοσειρές και προβλήματα που αφορούν συμβολοσειρές εμφανίζονται τόσο συχνά που

Διαβάστε περισσότερα

Δοµές Δεδοµένων. 18η Διάλεξη Ισορροπηµένα δέντρα. Ε. Μαρκάκης

Δοµές Δεδοµένων. 18η Διάλεξη Ισορροπηµένα δέντρα. Ε. Μαρκάκης Δοµές Δεδοµένων 18η Διάλεξη Ισορροπηµένα δέντρα Ε. Μαρκάκης Περίληψη Επανάληψη των Τυχαιοποιηµένων ΔΔΑ, Στρεβλών ΔΔΑ, Δέντρων 2-3-4 Δέντρα κόκκινου-µαύρου Λίστες Παράλειψης Χαρακτηριστικά επιδόσεων - συµπεράσµατα

Διαβάστε περισσότερα

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Εισαγωγή. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Εισαγωγή. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Δομές Δεδομένων Εισαγωγή Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Βιβλιογραφία Robert Sedgewick, Αλγόριθμοι σε C, Μέρη 1-4 (Θεμελιώδεις Έννοιες, Δομές Δεδομένων, Ταξινόμηση,

Διαβάστε περισσότερα

Ισορροπημένα Δένδρα. για κάθε λειτουργία; Ισορροπημένο δένδρο : Διατηρεί ύψος κάθε εισαγωγή ή διαγραφή

Ισορροπημένα Δένδρα. για κάθε λειτουργία; Ισορροπημένο δένδρο : Διατηρεί ύψος κάθε εισαγωγή ή διαγραφή Ισορροπημένα Δένδρα Μπορούμε να επιτύχουμε για κάθε λειτουργία; χρόνο εκτέλεσης Ισορροπημένο δένδρο : Διατηρεί ύψος κάθε εισαγωγή ή διαγραφή μετά από Περιστροφές x αριστερή περιστροφή από το x y α β y

Διαβάστε περισσότερα

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Δυναμικός Κατακερματισμός 1 Κατακερματισμός Τι αποθηκεύουμε στους κάδους; Στα παραδείγματα δείχνουμε μόνο την τιμή του πεδίου κατακερματισμού Την ίδια την εγγραφή (ως τρόπος οργάνωσης αρχείου) μέγεθος

Διαβάστε περισσότερα

Δένδρα. Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα:

Δένδρα. Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Δένδρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγή σε δενδρικές δομές δεδομένων, ορισμοί, πράξεις και αναπαράσταση στη μνήμη ΔυαδικάΔένδρακαιΔυαδικάΔένδραΑναζήτησης ΕΠΛ 231 Δομές

Διαβάστε περισσότερα

Δεντρικά Ευρετήρια. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Δεντρικά Ευρετήρια. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Δεντρικά Ευρετήρια Βάσεις Δεδομένων 2017-2018 1 Δέντρα Αναζήτησης Ένα δέντρο αναζήτησης (search tree) τάξεως p είναι ένα δέντρο τέτοιο ώστε κάθε κόμβος του περιέχει το πολύ p - 1 τιμές αναζήτησης και ρ

Διαβάστε περισσότερα

Ισορροπημένα Δένδρα. για κάθε λειτουργία; Ισορροπημένο δένδρο : Διατηρεί ύψος κάθε εισαγωγή ή διαγραφή

Ισορροπημένα Δένδρα. για κάθε λειτουργία; Ισορροπημένο δένδρο : Διατηρεί ύψος κάθε εισαγωγή ή διαγραφή Ισορροπημένα Δένδρα Μπορούμε να επιτύχουμε για κάθε λειτουργία; χρόνο εκτέλεσης Ισορροπημένο δένδρο : Διατηρεί ύψος κάθε εισαγωγή ή διαγραφή μετά από Περιστροφές x αριστερή περιστροφή από το x y α β y

Διαβάστε περισσότερα

Κεφάλαιο 2. Η δομή δεδομένων Σωρός και η Ταξινόμηση Σωρού (The Heap data structure and Heapsort) Έκδοση 1.3, 14/11/2014

Κεφάλαιο 2. Η δομή δεδομένων Σωρός και η Ταξινόμηση Σωρού (The Heap data structure and Heapsort) Έκδοση 1.3, 14/11/2014 Κεφάλαιο 2 Η δομή δεδομένων Σωρός και η Ταξινόμηση Σωρού (The Heap data structure and Heapsort) Έκδοση 1.3, 14/11/2014 Χρησιμοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne. 1 Σωρός και Ταξινόμηση

Διαβάστε περισσότερα

Διδάσκων: Παναγιώτης Ανδρέου

Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 23: Ισοζυγισμένα Δέντρα, AVL Δέντρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Ισοζυγισμένα Δέντρα - Υλοποίηση AVL-δέντρων - Εισαγωγή Κόμβων και Περιστροφές σε AVL δέντρα Διδάσκων:

Διαβάστε περισσότερα

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Δοµές Δεδοµένων

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Δοµές Δεδοµένων ΟΝΟΜΑΤΕΠΩΝΥΜΟ: ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ AM: Δοµές Δεδοµένων Πτυχιακή Εξεταστική Ιούλιος 2014 Διδάσκων : Ευάγγελος Μαρκάκης 09.07.2014 ΥΠΟΓΡΑΦΗ ΕΠΟΠΤΗ: Διάρκεια εξέτασης : 2 ώρες

Διαβάστε περισσότερα

Δομές Δεδομένων. Καθηγήτρια Μαρία Σατρατζέμη. Τμήμα Εφαρμοσμένης Πληροφορικής. Δομές Δεδομένων. Τμήμα Εφαρμοσμένης Πληροφορικής

Δομές Δεδομένων. Καθηγήτρια Μαρία Σατρατζέμη. Τμήμα Εφαρμοσμένης Πληροφορικής. Δομές Δεδομένων. Τμήμα Εφαρμοσμένης Πληροφορικής Ενότητα 8: Γραμμική Αναζήτηση και Δυαδική Αναζήτηση-Εισαγωγή στα Δέντρα και Δυαδικά Δέντρα-Δυαδικά Δέντρα Αναζήτησης & Υλοποίηση ΔΔΑ με δείκτες Καθηγήτρια Μαρία Σατρατζέμη Άδειες Χρήσης Το παρόν εκπαιδευτικό

Διαβάστε περισσότερα

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Δυναμικός Κατακερματισμός Βάσεις Δεδομένων 2018-2019 1 Κατακερματισμός Πρόβλημα στατικού κατακερματισμού: Έστω Μ κάδους και r εγγραφές ανά κάδο - το πολύ Μ * r εγγραφές (αλλιώς μεγάλες αλυσίδες υπερχείλισης)

Διαβάστε περισσότερα

ΗΥ360 Αρχεία και Βάσεις εδοµένων

ΗΥ360 Αρχεία και Βάσεις εδοµένων ΗΥ360 Αρχεία και Βάσεις εδοµένων ιδάσκων:. Πλεξουσάκης Tutorial B-Trees, B+Trees Μπαριτάκης Παύλος 2018-2019 Ιδιότητες B-trees Χρήση για μείωση των προσπελάσεων στον δίσκο Επέκταση των Binary Search Trees

Διαβάστε περισσότερα

Αλγόριθµοι και Πολυπλοκότητα

Αλγόριθµοι και Πολυπλοκότητα Αλγόριθµοι και Πολυπλοκότητα Ν. Μ. Μισυρλής Τµήµα Πληροφορικής και Τηλεπικοινωνιών, Πανεπιστήµιο Αθηνών Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα Φεβρουαρίου 0 / ένδρα Ενα δένδρο είναι

Διαβάστε περισσότερα

Προγραμματισμός Ι (ΗΥ120)

Προγραμματισμός Ι (ΗΥ120) Προγραμματισμός Ι (ΗΥ120) Διάλεξη 20: Δυαδικό Δέντρο Αναζήτησης Δυαδικό δέντρο Κάθε κόμβος «γονέας» περιέχει δύο δείκτες που δείχνουν σε δύο κόμβους «παιδιά» του ιδίου τύπου. Αν οι δείκτες προς αυτούς

Διαβάστε περισσότερα

Εξωτερική Αναζήτηση. Ιεραρχία Μνήμης Υπολογιστή. Εξωτερική Μνήμη. Εσωτερική Μνήμη. Κρυφή Μνήμη (Cache) Καταχωρητές (Registers) μεγαλύτερη ταχύτητα

Εξωτερική Αναζήτηση. Ιεραρχία Μνήμης Υπολογιστή. Εξωτερική Μνήμη. Εσωτερική Μνήμη. Κρυφή Μνήμη (Cache) Καταχωρητές (Registers) μεγαλύτερη ταχύτητα Ιεραρχία Μνήμης Υπολογιστή Εξωτερική Μνήμη Εσωτερική Μνήμη Κρυφή Μνήμη (Cache) μεγαλύτερη χωρητικότητα Καταχωρητές (Registers) Κεντρική Μονάδα (CPU) μεγαλύτερη ταχύτητα Πολλές σημαντικές εφαρμογές διαχειρίζονται

Διαβάστε περισσότερα

Κεφάλαιο 8 Ισορροπημένα Δένδρα Αναζήτησης

Κεφάλαιο 8 Ισορροπημένα Δένδρα Αναζήτησης Κεφάλαιο 8 Ισορροπημένα Δένδρα Αναζήτησης Περιεχόμενα 8.1 Κατηγορίες ισορροπημένων δένδρων αναζήτησης... 155 8.1.1 Περιστροφές... 156 8.2 Δένδρα AVL... 157 8.2.1 Αποκατάσταση συνθήκης ισορροπίας... 158

Διαβάστε περισσότερα

Δεντρικά Ευρετήρια. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Δεντρικά Ευρετήρια. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Δεντρικά Ευρετήρια Βάσεις Δεδομένων 2013-2014 Ευαγγελία Πιτουρά 1 Δέντρα Αναζήτησης Ένα δέντρο αναζήτησης (search tree) τάξεως p είναι ένα δέντρο τέτοιο ώστε κάθε κόμβος του περιέχει το πολύ p - 1 τιμές

Διαβάστε περισσότερα

Ενότητες 3 & 4: Δένδρα, Σύνολα & Λεξικά Ασκήσεις και Λύσεις

Ενότητες 3 & 4: Δένδρα, Σύνολα & Λεξικά Ασκήσεις και Λύσεις Ενότητες 3 & 4: Δένδρα, Σύνολα & Λεξικά Ασκήσεις και Λύσεις Άσκηση 1 Γράψτε μία αναδρομική συνάρτηση που θα παίρνει ως παράμετρο ένα δείκτη στη ρίζα ενός δυαδικού δένδρου και θα επιστρέφει το βαθμό του

Διαβάστε περισσότερα

έντρα Πολλαπλής ιακλάδωσης και (a, b)- έντρα

έντρα Πολλαπλής ιακλάδωσης και (a, b)- έντρα έντρα Πολλαπλής ιακλάδωσης και (a, b)- έντρα ηµήτρης Φωτάκης Τµήµα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστηµάτων έντρα Αναζήτησης Πολλαπλής ιακλάδωσης ( ΑΠ ) ΑΠ ή έντρα m-δρόµων: Σ Βάσεων εδοµένων.

Διαβάστε περισσότερα

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Δοµές Δεδοµένων

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Δοµές Δεδοµένων ΟΝΟΜΑΤΕΠΩΝΥΜΟ: ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ AM: Δοµές Δεδοµένων Εξεταστική Ιανουαρίου 2014 Διδάσκων : Ευάγγελος Μαρκάκης 20.01.2014 ΥΠΟΓΡΑΦΗ ΕΠΟΠΤΗ: Διάρκεια εξέτασης : 2 ώρες και

Διαβάστε περισσότερα

Δομές Αναζήτησης. κλειδί από ολικά διατεταγμένο σύνολο. Θέλουμε να υποστηρίξουμε δύο βασικές λειτουργίες: Εισαγωγή ενός νέου στοιχείου

Δομές Αναζήτησης. κλειδί από ολικά διατεταγμένο σύνολο. Θέλουμε να υποστηρίξουμε δύο βασικές λειτουργίες: Εισαγωγή ενός νέου στοιχείου Δομές Αναζήτησης Χειριζόμαστε ένα σύνολο στοιχείων κλειδί από ολικά διατεταγμένο σύνολο όπου το κάθε στοιχείο έχει ένα Θέλουμε να υποστηρίξουμε δύο βασικές λειτουργίες: Εισαγωγή ενός νέου στοιχείου με

Διαβάστε περισσότερα

Αλγόριθμοι Ταξινόμησης Μέρος 2

Αλγόριθμοι Ταξινόμησης Μέρος 2 Αλγόριθμοι Ταξινόμησης Μέρος 2 Μανόλης Κουμπαράκης 1 Προχωρημένοι Αλγόριθμοι Ταξινόμησης Στη συνέχεια θα παρουσιάσουμε τρείς προχωρημένους αλγόριθμους ταξινόμησης: treesort, quicksort και mergesort. 2

Διαβάστε περισσότερα

Δεντρικά Ευρετήρια. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Δεντρικά Ευρετήρια. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Δεντρικά Ευρετήρια 1 Δέντρα Αναζήτησης Ένα δέντρο αναζήτησης (search tree) τάξεως p είναι ένα δέντρο τέτοιο ώστε κάθε κόμβος του περιέχει το πολύ p - 1 τιμές αναζήτησης και ρ δείκτες ως εξής P 1 K 1 P

Διαβάστε περισσότερα

Δομές Δεδομένων (Data Structures)

Δομές Δεδομένων (Data Structures) Δομές Δεδομένων (Data Structures) Δένδρα (Trees) Βασικές Έννοιες. Δυαδικά Δένδρα. Δυαδικά Δένδρα Αναζήτησης. AVL Δένδρα. Δένδρα: Βασικές Έννοιες Ορισμοί Λειτουργίες Υλοποιήσεις ΑΤΔ Δένδρο: μοντέλο ιεραρχικής

Διαβάστε περισσότερα

Δεντρικά Ευρετήρια. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Δεντρικά Ευρετήρια. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Δεντρικά Ευρετήρια Ευαγγελία Πιτουρά 1 Δέντρα Αναζήτησης Ένα δέντρο αναζήτησης (search tree) τάξεως p είναι ένα δέντρο τέτοιο ώστε κάθε κόμβος του περιέχει το πολύ p - 1 τιμές αναζήτησης και ρ δείκτες

Διαβάστε περισσότερα

Τα δεδομένα (περιεχόμενο) μιας βάσης δεδομένων αποθηκεύεται στο δίσκο

Τα δεδομένα (περιεχόμενο) μιας βάσης δεδομένων αποθηκεύεται στο δίσκο Κατακερματισμός 1 Αποθήκευση εδομένων (σύνοψη) Τα δεδομένα (περιεχόμενο) μιας βάσης δεδομένων αποθηκεύεται στο δίσκο Παραδοσιακά, μία σχέση (πίνακας/στιγμιότυπο) αποθηκεύεται σε ένα αρχείο Αρχείο δεδομένων

Διαβάστε περισσότερα

Alternative to Balanced Trees, Comms of the ACM, 33(6), June 1990,

Alternative to Balanced Trees, Comms of the ACM, 33(6), June 1990, ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ Τμήμα Πληροφορικής & Τηλεπικοινωνιών Μια σημείωση από τον Α. Δελή για το άρθρο: W. Pugh, Skip Lists: A Probabilistic Alternative to Balanced Trees, Comms of the ACM, 33(), June 10,

Διαβάστε περισσότερα

Δομές δεδομένων. Ενότητα 5η: Υλοποίηση Λεξικών με Ισοζυγισμένα Δένδρα Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών

Δομές δεδομένων. Ενότητα 5η: Υλοποίηση Λεξικών με Ισοζυγισμένα Δένδρα Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Δομές δεδομένων Ενότητα 5η: Υλοποίηση Λεξικών με Ισοζυγισμένα Δένδρα Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών ΕΝΟΤΗΤΑ 5 ΥΛΟΠΟΙΗΣΗ ΛΕΞΙΚΩΝ ΜΕ ΙΣΟΖΥΓΙΣΜΕΝΑ ΔΕΝΔΡΑ

Διαβάστε περισσότερα

Δοµές Δεδοµένων. 17η Διάλεξη Ισορροπηµένα δέντρα. Ε. Μαρκάκης

Δοµές Δεδοµένων. 17η Διάλεξη Ισορροπηµένα δέντρα. Ε. Μαρκάκης Δοµές Δεδοµένων 17η Διάλεξη Ισορροπηµένα δέντρα Ε. Μαρκάκης Περίληψη Εισαγωγή Τυχαιοποιηµένα ΔΔΑ (Randomized Binary Search trees) Στρεβλά ΔΔΑ (Splay trees) Καθοδικά δέντρα 2-3-4 (Top-Down 2-3-4 trees)

Διαβάστε περισσότερα

Κατακερματισμός. 4/3/2009 Μ.Χατζόπουλος 1

Κατακερματισμός. 4/3/2009 Μ.Χατζόπουλος 1 Κατακερματισμός 4/3/2009 Μ.Χατζόπουλος 1 H ιδέα που βρίσκεται πίσω από την τεχνική του κατακερματισμού είναι να δίνεται μια συνάρτησης h, που λέγεται συνάρτηση κατακερματισμού ή παραγωγής τυχαίων τιμών

Διαβάστε περισσότερα

ΕΠΛ 231 Δοµές Δεδοµένων και Αλγόριθµοι 8-1

ΕΠΛ 231 Δοµές Δεδοµένων και Αλγόριθµοι 8-1 B-Δένδρα Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: 2-3 Δένδρα, Υλοποίηση και πράξεις Β-δένδρα ΕΠΛ 231 Δοµές Δεδοµένων και Αλγόριθµοι 8-1 2-3 Δένδρα Γενίκευση των δυαδικών δένδρων αναζήτησης.

Διαβάστε περισσότερα

Αλγόριθμοι και Πολυπλοκότητα

Αλγόριθμοι και Πολυπλοκότητα Αλγόριθμοι και Πολυπλοκότητα Ροή Δικτύου Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Μοντελοποίηση Δικτύων Μεταφοράς Τα γραφήματα χρησιμοποιούνται συχνά για την μοντελοποίηση

Διαβάστε περισσότερα

Αλγόριθμοι και Δομές Δεδομένων (IΙ) (γράφοι και δένδρα)

Αλγόριθμοι και Δομές Δεδομένων (IΙ) (γράφοι και δένδρα) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2016-17 Αλγόριθμοι και Δομές Δεδομένων (IΙ) (γράφοι και δένδρα) http://mixstef.github.io/courses/csintro/ Μ.Στεφανιδάκης Αφηρημένες

Διαβάστε περισσότερα

ΕΠΛ 231 οµές εδοµένων και Αλγόριθµοι Άννα Φιλίππου,

ΕΠΛ 231 οµές εδοµένων και Αλγόριθµοι Άννα Φιλίππου, B- ένδρα Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: 2-3 ένδρα, Υλοποίηση και πράξεις Β-δένδρα ΕΠΛ 231 οµές εδοµένων και Αλγόριθµοι Άννα Φιλίππου, 2006 8-1 2-3 ένδρα Γενίκευση των δυαδικών

Διαβάστε περισσότερα

Μπαλτάς Αλέξανδρος 21 Απριλίου 2015

Μπαλτάς Αλέξανδρος 21 Απριλίου 2015 ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ B- Trees Δομές Δεδομένων Μπαλτάς Αλέξανδρος 21 Απριλίου 2015 ampaltas@ceid.upatras.gr Περιεχόμενα 1. Εισαγωγή 2. Ορισμός B- tree 3. Αναζήτηση σε B- tree 4. Ένθεση σε

Διαβάστε περισσότερα

Ισορροπημένα Δένδρα. για κάθε λειτουργία; Ισορροπημένο δένδρο : Διατηρεί ύψος κάθε εισαγωγή ή διαγραφή

Ισορροπημένα Δένδρα. για κάθε λειτουργία; Ισορροπημένο δένδρο : Διατηρεί ύψος κάθε εισαγωγή ή διαγραφή Ισορροπημένα Δένδρα Μπορούμε να επιτύχουμε για κάθε λειτουργία; χρόνο εκτέλεσης Ισορροπημένο δένδρο : Διατηρεί ύψος κάθε εισαγωγή ή διαγραφή μετά από Περιστροφές x αριστερή περιστροφή από το x y α β y

Διαβάστε περισσότερα

Δυαδικά Δέντρα Αναζήτησης (Binary Search Trees) Ορισμός : Ένα δυαδικό δέντρο αναζήτησης t είναι ένα δυαδικό δέντρο, το οποίο είτε είναι κενό είτε:

Δυαδικά Δέντρα Αναζήτησης (Binary Search Trees) Ορισμός : Ένα δυαδικό δέντρο αναζήτησης t είναι ένα δυαδικό δέντρο, το οποίο είτε είναι κενό είτε: Δυαδικά Δέντρα Αναζήτησης (Binary Search Trees) Ορισμός : Ένα δυαδικό δέντρο αναζήτησης t είναι ένα δυαδικό δέντρο, το οποίο είτε είναι κενό είτε: (i) όλα τα περιεχόμενα στο αριστερό υποδέντρο του t είναι

Διαβάστε περισσότερα

Εκτενείς Δομές Δεδομένων

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

Διαβάστε περισσότερα

ΛΥΣΗ ΤΗΣ ΔΕΥΤΕΡΗΣ ΑΣΚΗΣΗΣ Όλγα Γκουντούνα

ΛΥΣΗ ΤΗΣ ΔΕΥΤΕΡΗΣ ΑΣΚΗΣΗΣ Όλγα Γκουντούνα ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΜΑΘΗΜΑ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΑΚΑΔ. ΕΤΟΣ 2011-12 ΔΙΔΑΣΚΟΝΤΕΣ Ιωάννης Βασιλείου Καθηγητής Τιμολέων Σελλής Καθηγητής Άσκηση 1

Διαβάστε περισσότερα

Εισαγωγή στην Επεξεργασία Ερωτήσεων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Εισαγωγή στην Επεξεργασία Ερωτήσεων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Εισαγωγή στην Επεξεργασία Ερωτήσεων 1 Επεξεργασία Ερωτήσεων Θα δούμε την «πορεία» μιας SQL ερώτησης (πως εκτελείται) Ερώτηση SQL Ερώτηση ΣΒΔ Αποτέλεσμα 2 Βήματα Επεξεργασίας Τα βασικά βήματα στην επεξεργασία

Διαβάστε περισσότερα

Οργάνωση αρχείων: πως είναι τοποθετηµένες οι εγγραφές ενός αρχείου όταν αποθηκεύονται στο δίσκο

Οργάνωση αρχείων: πως είναι τοποθετηµένες οι εγγραφές ενός αρχείου όταν αποθηκεύονται στο δίσκο Κατακερµατισµός 1 Οργάνωση Αρχείων (σύνοψη) Οργάνωση αρχείων: πως είναι τοποθετηµένες οι εγγραφές ενός αρχείου όταν αποθηκεύονται στο δίσκο 1. Αρχεία Σωρού 2. Ταξινοµηµένα Αρχεία Φυσική διάταξη των εγγραφών

Διαβάστε περισσότερα

ΟιβασικέςπράξειςπουορίζουντονΑΤΔ δυαδικό δέντρο αναζήτησης είναι οι ακόλουθες:

ΟιβασικέςπράξειςπουορίζουντονΑΤΔ δυαδικό δέντρο αναζήτησης είναι οι ακόλουθες: Δυαδικά Δέντρα Αναζήτησης (Binary Search Trees) Ορισμός : Ένα δυαδικό δέντρο αναζήτησης t είναι ένα δυαδικό δέντρο, το οποίο είτε είναι κενό είτε: (i) όλα τα περιεχόμενα στο αριστερό υποδέντρο του t είναι

Διαβάστε περισσότερα

Διάλεξη 17: O Αλγόριθμος Ταξινόμησης HeapSort

Διάλεξη 17: O Αλγόριθμος Ταξινόμησης HeapSort Διάλεξη 17: O Αλγόριθμος Ταξινόμησης HeapSort Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Η διαδικασία PercolateDown, Δημιουργία Σωρού O Αλγόριθμος Ταξινόμησης HeapSort Υλοποίηση, Παραδείγματα

Διαβάστε περισσότερα

Διασυνδεδεμένες Δομές. Δυαδικά Δέντρα. Προγραμματισμός II 1

Διασυνδεδεμένες Δομές. Δυαδικά Δέντρα. Προγραμματισμός II 1 Διασυνδεδεμένες Δομές Δυαδικά Δέντρα Προγραμματισμός II 1 lalis@inf.uth.gr Δέντρα Τα δέντρα είναι κλασικές αναδρομικές δομές Ένα δέντρο αποτελείται από υποδέντρα, καθένα από τα οποία μπορεί να θεωρηθεί

Διαβάστε περισσότερα

Διάλεξη 11: Δέντρα Ι Εισαγωγή σε Δενδρικές Δομές Δεδομένων

Διάλεξη 11: Δέντρα Ι Εισαγωγή σε Δενδρικές Δομές Δεδομένων Διάλεξη 11: Δέντρα Ι Εισαγωγή σε Δενδρικές Δομές Δεδομένων Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγή σε δενδρικές δομές δεδομένων, Ορισμοί και πράξεις Αναπαράσταση δενδρικών δομών

Διαβάστε περισσότερα

Αποθήκευση Δεδομένων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Αποθήκευση Δεδομένων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Αποθήκευση Δεδομένων Βάσεις Δεδομένων 2017-2018 1 ΣΔΒΔ SQL ΣΔΒΔ ΒΑΣΗ ΔΕΔΟΜΕΝΩΝ Τυπικά, Κάθε σχέση (το στιγμιότυπο της) αποθηκεύεται σε ένα αρχείο Βάσεις Δεδομένων 2017-2018 2 Δομή ενός ΣΔΒΔ (πιο αναλυτικά)

Διαβάστε περισσότερα

Ισοζυγισµένο έντρο (AVL Tree)

Ισοζυγισµένο έντρο (AVL Tree) Εργαστήριο 7 Ισοζυγισµένο έντρο (AVL Tree) Εισαγωγή Εκτός από τα δυαδικά δέντρα αναζήτησης (inry serh trees) που εξετάσαµε σε προηγούµενο εργαστήριο, υπάρχουν αρκετά είδη δέντρων αναζήτησης µε ξεχωριστό

Διαβάστε περισσότερα

Κεφάλαιο 2. Η δοµή δεδοµένων Σωρός και η Ταξινόµηση Σωρού (The Heap data structure and Heapsort) Έκδοση 1.1, 12/05/2010

Κεφάλαιο 2. Η δοµή δεδοµένων Σωρός και η Ταξινόµηση Σωρού (The Heap data structure and Heapsort) Έκδοση 1.1, 12/05/2010 Κεφάλαιο 2 Η δοµή δεδοµένων Σωρός και η Ταξινόµηση Σωρού (The Heap data structure and Heapsort) Έκδοση., 2/05/200 Χρησιµοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne. Σωρός και Ταξινόµηση

Διαβάστε περισσότερα

ΕΝΟΤΗΤΑ 6 ΛΙΣΤΕΣ ΠΑΡΑΛΕΙΨΗΣ (SKIP LISTS)

ΕΝΟΤΗΤΑ 6 ΛΙΣΤΕΣ ΠΑΡΑΛΕΙΨΗΣ (SKIP LISTS) ΕΝΟΤΗΤΑ 6 ΛΙΣΤΕΣ ΠΑΡΑΛΕΙΨΗΣ (SKIP LISTS) Ταχεία Αναζήτηση Σε πίνακα: δυαδική αναζήτηση (binary search) σε ταξινοµηµένο πίνακα O(log n) Σε δένδρο: αναζήτηση σε ισοζυγισµένο δένδρο O(log n) Σε λίστα: Μπορούµε

Διαβάστε περισσότερα

Διάλεξη 11: Δέντρα Ι - Εισαγωγή σε Δενδρικές Δομές Δεδομένων

Διάλεξη 11: Δέντρα Ι - Εισαγωγή σε Δενδρικές Δομές Δεδομένων ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 1 Διάλεξη 11: Δέντρα Ι - Εισαγωγή σε Δενδρικές Δομές Δεδομένων Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Εισαγωγή σε δενδρικές δομές δεδομένων, -

Διαβάστε περισσότερα

Μάθημα 22: Δυαδικά δέντρα (Binary Trees)

Μάθημα 22: Δυαδικά δέντρα (Binary Trees) Trees Page 1 Μάθημα 22: Δυαδικά δέντρα (Binary Trees) Ένα δένδρο είναι δυαδικό αν όλοι οι κόμβοι του έχουν βαθμό (degree)

Διαβάστε περισσότερα

ΠΑΡΑΡΤΗΜΑ: QUIZ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ

ΠΑΡΑΡΤΗΜΑ: QUIZ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΠΑΡΑΡΤΗΜΑ: QUIZ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ (Οι ερωτήσεις µε κίτρινη υπογράµµιση είναι εκτός ύλης για φέτος) ΕΙΣΑΓΩΓΗ Q1. Οι Πρωταρχικοί τύποι (primitive types) στη Java 1. Είναι όλοι οι ακέραιοι και όλοι οι πραγµατικοί

Διαβάστε περισσότερα

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Συστήματα Διαχείρισης Βάσεων Δεδομένων Άσκηση 1 Δημήτρης Πλεξουσάκης Τμήμα Επιστήμης Υπολογιστών HY460 Συστήματα Διαχείρισης Βάσεων Δεδομένων Διδάσκοντες: Δημήτρης

Διαβάστε περισσότερα

ΑΛΓΟΡΙΘΜΟΙ ΜΕ C. ΝΙΚΟΛΑΟΣ ΣΑΜΑΡΑΣ Αναπληρωτής Καθηγητής. CMOR Lab. Computational Methodologies and Operations Research

ΑΛΓΟΡΙΘΜΟΙ ΜΕ C. ΝΙΚΟΛΑΟΣ ΣΑΜΑΡΑΣ Αναπληρωτής Καθηγητής. CMOR Lab. Computational Methodologies and Operations Research ΑΛΓΟΡΙΘΜΟΙ ΜΕ C ΝΙΚΟΛΑΟΣ ΣΑΜΑΡΑΣ Αναπληρωτής Καθηγητής CMOR Lab Computational Methodologies and Operations Research Δέντρα (5) Τ ένα δέντρο i ένας κόμβος στο επίπεδο k j ένας κόμβος στο επίπεδο k+1 } :

Διαβάστε περισσότερα

Δομές Δεδομένων (Data Structures)

Δομές Δεδομένων (Data Structures) Δομές Δεδομένων (Data Structures) Γραμμικές Λίστες Βασικές Έννοιες Βασικές Έννοιες. Αναπαράσταση με τύπο και με δείκτη. Γραμμικές Λίστες. Βασικές Λειτουργίες. Δομές Δεδομένων: Βασικές Έννοιες Αντικείμενο

Διαβάστε περισσότερα

ΕΝΟΤΗΤΑ 5 ΥΝΑΜΙΚΑ ΛΕΞΙΚΑ ΙΣΟΖΥΓΙΣΜΕΝΑ ΕΝ ΡΑ

ΕΝΟΤΗΤΑ 5 ΥΝΑΜΙΚΑ ΛΕΞΙΚΑ ΙΣΟΖΥΓΙΣΜΕΝΑ ΕΝ ΡΑ ΕΝΟΤΗΤΑ 5 ΥΝΑΜΙΚΑ ΛΕΞΙΚΑ ΙΣΟΖΥΓΙΣΜΕΝΑ ΕΝ ΡΑ ενδρικές οµές για Υλοποίηση υναµικών Λεξικών υναµικά λεξικά λειτουργίες LookUp( ), Insert( ) και Delete( ) Αναζητούµε δένδρα για την αποτελεσµατική υλοποίηση

Διαβάστε περισσότερα

Τεχνολογία μνημών Ημιαγωγικές μνήμες Μνήμες που προσπελαύνονται με διευθύνσεις:

Τεχνολογία μνημών Ημιαγωγικές μνήμες Μνήμες που προσπελαύνονται με διευθύνσεις: Σύστημα μνήμης Ο κύριος σκοπός στο σχεδιασμό ενός συστήματος μνήμης είναι να προσφέρουμε επαρκή χωρητικότητα αποθήκευσης διατηρώντας ένα αποδεκτό επίπεδο μέσης απόδοσης και επίσης χαμηλό μέσο κόστος ανά

Διαβάστε περισσότερα

Εισαγωγή στην Επεξεργασία Ερωτήσεων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Εισαγωγή στην Επεξεργασία Ερωτήσεων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Εισαγωγή στην Επεξεργασία Ερωτήσεων Βάσεις Δεδομένων 2013-2014 Ευαγγελία Πιτουρά 1 Επεξεργασία Ερωτήσεων Θα δούμε την «πορεία» μιας SQL ερώτησης (πως εκτελείται) Ερώτηση SQL Ερώτηση ΣΒΔ Αποτέλεσμα Βάσεις

Διαβάστε περισσότερα

Δημιουργία Δυαδικών Δέντρων Αναζήτησης

Δημιουργία Δυαδικών Δέντρων Αναζήτησης Δημιουργία Δυαδικών Δέντρων Αναζήτησης Τα Δυαδικά δέντρα αναζήτησης είναι διατεταγμένα δυαδικά δέντρα όπου έχει σημασία η διάταξη των παιδιών κάθε κόμβου. Συγκεκριμένα για τα Δυαδικά δέντρα αναζήτησης,

Διαβάστε περισσότερα

Ενότητα 7 Ουρές Προτεραιότητας

Ενότητα 7 Ουρές Προτεραιότητας Ενότητα Ουρές Προτεραιότητας ΗΥ4 - Παναγιώτα Φατούρου Ουρές Προτεραιότητας Θεωρούµε ένα χώρο κλειδιών U και έστω ότι µε κάθε κλειδί Κ (τύπου Key) έχει συσχετισθεί κάποια πληροφορία Ι (τύπου Type). Έστω

Διαβάστε περισσότερα

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Ταξινόμηση. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Ταξινόμηση. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Δομές Δεδομένων Ταξινόμηση Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Το πρόβλημα Είσοδος n αντικείμενα a 1, a 2,..., a n με κλειδιά (συνήθως σε ένα πίνακα, ή λίστα, κ.τ.λ)

Διαβάστε περισσότερα

Δοµές Δεδοµένων. 11η Διάλεξη Ταξινόµηση Quicksort και Ιδιότητες Δέντρων. Ε. Μαρκάκης

Δοµές Δεδοµένων. 11η Διάλεξη Ταξινόµηση Quicksort και Ιδιότητες Δέντρων. Ε. Μαρκάκης Δοµές Δεδοµένων 11η Διάλεξη Ταξινόµηση Quicksort και Ιδιότητες Δέντρων Ε. Μαρκάκης Περίληψη Quicksort Χαρακτηριστικά επιδόσεων Μη αναδροµική υλοποίηση Δέντρα Μαθηµατικές ιδιότητες Δοµές Δεδοµένων 11-2

Διαβάστε περισσότερα

Κατακερµατισµός. Οργάνωση Αρχείων (σύνοψη) Οργάνωση αρχείων: πως είναι τοποθετημένες οι εγγραφές ενός αρχείου όταν αποθηκεύονται στο δίσκο

Κατακερµατισµός. Οργάνωση Αρχείων (σύνοψη) Οργάνωση αρχείων: πως είναι τοποθετημένες οι εγγραφές ενός αρχείου όταν αποθηκεύονται στο δίσκο Κατακερµατισµός 1 Οργάνωση Αρχείων (σύνοψη) Οργάνωση αρχείων: πως είναι τοποθετημένες οι εγγραφές ενός αρχείου όταν αποθηκεύονται στο δίσκο 1. Αρχεία Σωρού 2. Ταξινομημένα Αρχεία Φυσική διάταξη των εγγραφών

Διαβάστε περισσότερα

Γ7.5 Αλγόριθμοι Αναζήτησης. Γ Λυκείου Κατεύθυνσης

Γ7.5 Αλγόριθμοι Αναζήτησης. Γ Λυκείου Κατεύθυνσης Γ7.5 Αλγόριθμοι Αναζήτησης Γ Λυκείου Κατεύθυνσης Εισαγωγή Αλγόριθμος αναζήτησης θεωρείται ένας αλγόριθμος, ο οποίος προσπαθεί να εντοπίσει ένα στοιχείο με συγκεκριμένες ιδιότητες, μέσα σε μία συλλογή από

Διαβάστε περισσότερα

Αλγόριθμοι και πολυπλοκότητα Μελανέρυθρα δεντρα

Αλγόριθμοι και πολυπλοκότητα Μελανέρυθρα δεντρα ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Αλγόριθμοι και πολυπλοκότητα Μελανέρυθρα δεντρα Ιωάννης Τόλλης Τμήμα Επιστήμης Υπολογιστών Μελανέρυθρα δεντρα v 3 8 z Red-Black Trees 1 Περιγραφή και Διαβασμα Από

Διαβάστε περισσότερα

Λυσεις προβλημάτων τελικής φάσης Παγκύπριου Μαθητικού Διαγωνισμού Πληροφορικής 2007

Λυσεις προβλημάτων τελικής φάσης Παγκύπριου Μαθητικού Διαγωνισμού Πληροφορικής 2007 Λυσεις προβλημάτων τελικής φάσης Παγκύπριου Μαθητικού Διαγωνισμού Πληροφορικής 2007 Πρόβλημα 1 Το πρώτο πρόβλημα λύνεται με τη μέθοδο του Δυναμικού Προγραμματισμού. Για να το λύσουμε με Δυναμικό Προγραμματισμό

Διαβάστε περισσότερα