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

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

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

Transcript

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

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

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

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

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

6 Παράδειγμα Χαροκόπειο Πανεπιστήμιο 6/72

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

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

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

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

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

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

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

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

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

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

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

18 Διάσχιση inorder κανόνας Επισκεπτόμαστε πρώτα το αριστερό υποδέντρο, μετά τον κόμβο και μετά το δεξιό υποδέντρο Επισκεπτόμαστε τους κόμβους με αύξουσα σειρά κλειδιού. Χαροκόπειο Πανεπιστήμιο 10/72

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

20 Εισαγωγή σε ΔΔΑ Εισαγωγή του Χαροκόπειο Πανεπιστήμιο 12/72

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

57 2-3-4 Δέντρα Αναζήτησης top-down Ορισμός Ένα δέντρο αναζήτησης είναι ένα δέντρο το οποίο είτε είναι κενό είτε αποτελείται από τρεις τύπους κόμβων: 2-κόμβους, 3-κόμβους και 4-κόμβους. Ισορροπημένο Ένα ισορροπημένο δέντρο αναζήτησης είναι ένα δέντρο αναζήτησης του οποίου όλοι οι σύνδεσμοι δείχνουν σε κενά δέντρα τα οποία ισαπέχουν από τη ρίζα. Χαροκόπειο Πανεπιστήμιο 24/72

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

127 Κόκκινα-Μαύρα Δέντρα Τα κόκκινα-μάυρα δέντρα είναι μία αναπαράσταση των δέντρων ως καθιερωμένα ΔΔΑ (μόνο 2-κόμβους) προσθέτοντας ένα ψηφίο επιπλέον πληροφορίας ανά κόμβο (το χρώμα). Θεωρούμε πως οι σύνδεσμοι έχουν χρώμα κόκκινο ή μαύρο. Επίσης το χρώμα κάθε κόμβου είναι το χρώμα του συνδέσμου που δείχνει στον κόμβο. Χαροκόπειο Πανεπιστήμιο 41/72

128 Κόκκινα-Μαύρα Δέντρα Χαροκόπειο Πανεπιστήμιο 42/72

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

144 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). Χαροκόπειο Πανεπιστήμιο 52/72

145 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. Χαροκόπειο Πανεπιστήμιο 52/72

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

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

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

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

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

151 Μονή Περιστροφή Χαροκόπειο Πανεπιστήμιο 56/72

152 Μονή Περιστροφή Χαροκόπειο Πανεπιστήμιο 56/72

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

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

155 Διπλή Περιστροφή a b c h Z W h X h Y h-1 W < b < X < c < Y < a < Z Χαροκόπειο Πανεπιστήμιο 58/72

156 Διπλή Περιστροφή a b c h Z W h X h Y h-1 W < b < X < c < Y < a < Z Χαροκόπειο Πανεπιστήμιο 58/72

157 Διπλή Περιστροφή a c b Y h-1 h Z W h X h W < b < X < c < Y < a < Z Χαροκόπειο Πανεπιστήμιο 58/72

158 Διπλή Περιστροφή a c b Y h-1 h Z W h X h W < b < X < c < Y < a < Z Χαροκόπειο Πανεπιστήμιο 58/72

159 Διπλή Περιστροφή c b a W h X h Y h-1 Z h W < b < X < c < Y < a < Z Χαροκόπειο Πανεπιστήμιο 58/72

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

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

162 Εξωτερική Μνήμη η μνήμη των υπολογιστών (DRAM) έχει χρόνο πρόσβασης της τάξης των nanoseconds: 10 9 sec, πχ nsec οι δίσκοι έχουν χρόνο πρόσβασης της τάξης των milliseconds: 10 3, πχ 2-10 ms Χαροκόπειο Πανεπιστήμιο 61/72

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

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

165 Ορισμός Βήτα Δέντρων Ένα δέντρο 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 είναι φύλλο Χαροκόπειο Πανεπιστήμιο 63/72

166 Ορισμός Βήτα Δέντρων Ένα δέντρο 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] στα παιδιά του. Τα φύλλα δεν έχουν παιδιά οπότε οι δείκτες αυτοί δεν ορίζονται. Χαροκόπειο Πανεπιστήμιο 63/72

167 Ορισμός Βήτα Δέντρων Ένα δέντρο 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. Χαροκόπειο Πανεπιστήμιο 63/72

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

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

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

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

172 Ύψος Βήτα Δέντρου Θεώρημα Ένα Βήτα δέντρο με 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 ) Χαροκόπειο Πανεπιστήμιο 65/72

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

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

175 Αναζήτηση σε Βήτα Δέντρο Η αναζήτηση δουλεύει όπως και στα ΔΔΑ (Δυαδικά Δέντρα Αναζήτησης) μόνο που τώρα έχουμε περισσότερες επιλογές σε κάθε κόμβο. 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) Χαροκόπειο Πανεπιστήμιο 68/72

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

177 Διαίρεση κόμβου (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 Χαροκόπειο Πανεπιστήμιο 70/72

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

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

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

181 Παράδειγμα 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 Χαροκόπειο Πανεπιστήμιο 71/72

182 Παράδειγμα 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 Χαροκόπειο Πανεπιστήμιο 71/72

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

AVL-trees C++ implementation

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Αναδρομικοί Αλγόριθμοι

Αναδρομικοί Αλγόριθμοι Αναδρομικός αλγόριθμος (recursive algorithm) Επιλύει ένα πρόβλημα λύνοντας ένα ή περισσότερα στιγμιότυπα του ίδιου προβλήματος. Αναδρομικός αλγόριθμος (recursive algorithm) Επιλύει ένα πρόβλημα λύνοντας

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

ΠΛΗ111. Ανοιξη 2005. Μάθηµα 7 ο. έντρο. Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης

ΠΛΗ111. Ανοιξη 2005. Μάθηµα 7 ο. έντρο. Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης ΠΛΗ111 οµηµένος Προγραµµατισµός Ανοιξη 2005 Μάθηµα 7 ο έντρο Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης έντρο Ορισµός Υλοποίηση µε Πίνακα Υλοποίηση µε είκτες υαδικό έντρο

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

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

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

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

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

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

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

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

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

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

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

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

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

Δηµοσθένης Σταµάτης Τµήµα Πληροφορικής ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΔΕΝΤΡΑ (TREES) B C D E F G H I J K L M

Δηµοσθένης Σταµάτης Τµήµα Πληροφορικής ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΔΕΝΤΡΑ (TREES) B C D E F G H I J K L M Δοµές Δεδοµένων & Ανάλυση Αλγορίθµων 3ο Εξάµηνο Δέντρα Δυαδικά Δέντρα Δυαδικά Δέντρα Αναζήτησης (inary Search Trees) http://aetos.it.teithe.gr/~demos/teaching_r.html Δηµοσθένης Σταµάτης Τµήµα Πληροφορικής

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

Δέντρα Απόφασης (Decision(

Δέντρα Απόφασης (Decision( Δέντρα Απόφασης (Decision( Trees) Το μοντέλο που δημιουργείται είναι ένα δέντρο Χρήση της τεχνικής «διαίρει και βασίλευε» για διαίρεση του χώρου αναζήτησης σε υποσύνολα (ορθογώνιες περιοχές) Ένα παράδειγμα

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

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

Αλγόριθμοι και Πολυπλοκότητα Αλγόριθμοι και Πολυπλοκότητα Άπληστοι Αλγόριθμοι Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Άπληστοι Αλγόριθμοι Είναι δύσκολο να ορίσουμε ακριβώς την έννοια του άπληστου

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

Insert (P) : Προσθέτει ένα νέο πρότυπο P στο λεξικό D. Delete (P) : Διαγράφει το πρότυπο P από το λεξικό D

Insert (P) : Προσθέτει ένα νέο πρότυπο P στο λεξικό D. Delete (P) : Διαγράφει το πρότυπο P από το λεξικό D Dynamic dictionary matching problem Έχουμε ένα σύνολο πρότυπων D = { P1, P2,..., Pk } oπου D το λεξικό και ένα αυθαίρετο κειμενο T [1,n] To σύνολο των πρότυπων αλλάζει με το χρόνο (ρεαλιστική συνθήκη).

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ ΥΠΟΛΟΓΙΣΜΩΝ ΚΑΙ ΑΥΤΟΜΑΤΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ ΥΠΟΛΟΓΙΣΜΩΝ ΚΑΙ ΑΥΤΟΜΑΤΩΝ Τελικές εξετάσεις 3 Ιανουαρίου 27 Διάρκεια εξέτασης: 3 ώρες (2:-5:) ΘΕΜΑ ο

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

h/2. Άρα, n 2 h/2-1 h 2log(n+1). Πως υλοποιούµε τη LookUp()? Πολυπλοκότητα?

h/2. Άρα, n 2 h/2-1 h 2log(n+1). Πως υλοποιούµε τη LookUp()? Πολυπλοκότητα? Κόκκινα-Μαύρα ένδρα (Red-Black Trees) Ένα κόκκινο-µαύρο δένδρο είναι ένα δυαδικό δένδρο αναζήτησης στο οποίο οι κόµβοι µπορούν να χαρακτηρίζονται από ένα εκ των δύο χρωµάτων: µαύρο-κόκκινο. Το χρώµα της

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

οµές εδοµένων 3 ο Εξάµηνο ΕΝΟΤΗΤΑ 4 ΕΝ ΡΑ

οµές εδοµένων 3 ο Εξάµηνο ΕΝΟΤΗΤΑ 4 ΕΝ ΡΑ ΕΝΟΤΗΤΑ 4 ΕΝ ΡΑ 1 ένδρα εσωτερικός κόµβος u το δένδρο έχει ύψος 4 u έχει ύψος 3 w έχει βάθος 2 κόµβος ένδρο: γράφηµα χωρίς κύκλους o Ρίζα (root) o Κόµβος (node) o Ακµή (edge) o Γονέας (parent) Παιδί (child)

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

Λειτουργικά Συστήματα Κεφάλαιο 2 Οργάνωση Συστήματος Αρχείων 2.1 Διαχείριση Αρχείων και Σύστημα Αρχείων(File System)

Λειτουργικά Συστήματα Κεφάλαιο 2 Οργάνωση Συστήματος Αρχείων 2.1 Διαχείριση Αρχείων και Σύστημα Αρχείων(File System) ..8 Κατανομή των αρχείων σε συσκευές Ακολουθείται κάποια λογική στην αποθήκευση των αρχείων:.αρχεία που χρησιμοποιούνται συχνά τοποθετούνται στους σκληρούς δίσκους που έχουν μεγάλη ταχύτητα πρόσβασης..αν

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

Δυναμικά Πολυεπίπεδα Ευρετήρια (Β-δένδρα) Μ.Χατζόπουλος 1

Δυναμικά Πολυεπίπεδα Ευρετήρια (Β-δένδρα) Μ.Χατζόπουλος 1 Δυναμικά Πολυεπίπεδα Ευρετήρια (Β-δένδρα) Μ.Χατζόπουλος 1 Α Β Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ.Χατζόπουλος 2 Δένδρο αναζήτησης είναι ένας ειδικός τύπος δένδρου που χρησιμοποιείται για να καθοδηγήσει την αναζήτηση μιας

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

Δομές Δεδομένων Εργαστηριακή Άσκηση 2012-2013. Γκόγκος Νίκος Α.Μ.: 4973 Έτος: 3 ο Email: gkogkos@ceid.upatras.gr. Εισαγωγικά:

Δομές Δεδομένων Εργαστηριακή Άσκηση 2012-2013. Γκόγκος Νίκος Α.Μ.: 4973 Έτος: 3 ο Email: gkogkos@ceid.upatras.gr. Εισαγωγικά: Δομές Δεδομένων Εργαστηριακή Άσκηση 2012-2013 Γκόγκος Νίκος Α.Μ.: 4973 Έτος: 3 ο Email: gkogkos@ceid.upatras.gr Εισαγωγικά: Η υλοποίηση του project έχει γίνει σε python [2.7]. Τα python modules είναι αυτόνομα

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

Ουρά Προτεραιότητας: Heap

Ουρά Προτεραιότητας: Heap Ουρά Προτεραιότητας: Heap ημήτρης Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο ομές εδομένων (Αναπαράσταση,) οργάνωση και διαχείριση συνόλων αντικειμένων για

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

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

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

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

Τεχνητή Νοημοσύνη. 2η διάλεξη (2015-16) Ίων Ανδρουτσόπουλος. http://www.aueb.gr/users/ion/

Τεχνητή Νοημοσύνη. 2η διάλεξη (2015-16) Ίων Ανδρουτσόπουλος. http://www.aueb.gr/users/ion/ Τεχνητή Νοημοσύνη 2η διάλεξη (2015-16) Ίων Ανδρουτσόπουλος http://www.aueb.gr/users/ion/ 1 Οι διαφάνειες αυτής της διάλεξης βασίζονται στα βιβλία: Τεχνητή Νοημοσύνη των Βλαχάβα κ.ά., 3η έκδοση, Β. Γκιούρδας

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

13/5/2015 ΟΥΡΕΣ ΠΡΟΤΕΡΑΙΟΤΗΤΑΣ. Δομές Δεδομένων. Ουρές Προτεραιότητας

13/5/2015 ΟΥΡΕΣ ΠΡΟΤΕΡΑΙΟΤΗΤΑΣ. Δομές Δεδομένων. Ουρές Προτεραιότητας ΟΥΡΕΣ ΠΡΟΤΕΡΑΙΟΤΗΤΑΣ Δομές Δεδομένων Τι θα δούμε Ουρές προτεραιότητας Πράξεις Διωνυμικές Ουρές Διωνυμικά Δέντρα Διωνυμικοί Σωροί Ουρές Fibonacci Αναπαράσταση Πράξεις Ανάλυση Συγκρίσεις Ουρές προτεραιότητας

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

Διαδικασιακός Προγραμματισμός

Διαδικασιακός Προγραμματισμός Τμήμα ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Διαδικασιακός Προγραμματισμός Διάλεξη 12 η Αναζήτηση/Ταξινόμηση Πίνακα Οι διαλέξεις βασίζονται στο βιβλίο των Τσελίκη και Τσελίκα C: Από τη Θεωρία στην

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

Λεξικό, Union Find. ιδάσκοντες: Σ. Ζάχος,. Φωτάκης Επιμέλεια διαφανειών:. Φωτάκης. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

Λεξικό, Union Find. ιδάσκοντες: Σ. Ζάχος,. Φωτάκης Επιμέλεια διαφανειών:. Φωτάκης. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Λεξικό, Union Find ιδάσκοντες: Σ. Ζάχος,. Φωτάκης Επιμέλεια διαφανειών:. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο ιαχείριση ιαμερίσεων Συνόλου Στοιχεία

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

Δομές Δεδομένων. Ενότητα 7: Άλλες παραλλαγές Συνδεδεμένων Λιστών-Παράσταση Αραιού Πολυωνύμου με Συνδεδεμένη Λίστα. Καθηγήτρια Μαρία Σατρατζέμη

Δομές Δεδομένων. Ενότητα 7: Άλλες παραλλαγές Συνδεδεμένων Λιστών-Παράσταση Αραιού Πολυωνύμου με Συνδεδεμένη Λίστα. Καθηγήτρια Μαρία Σατρατζέμη Ενότητα 7: Άλλες παραλλαγές Συνδεδεμένων Λιστών-Παράσταση Αραιού Πολυωνύμου με Συνδεδεμένη Λίστα Καθηγήτρια Μαρία Σατρατζέμη Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative

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

Πελάτες φθάνουν στο ταμείο μιας τράπεζας Eνα μόνο ταμείο είναι ανοικτό Κάθε πελάτης παρουσιάζεται με ένα νούμερο - αριθμός προτεραιότητας Όσο ο

Πελάτες φθάνουν στο ταμείο μιας τράπεζας Eνα μόνο ταμείο είναι ανοικτό Κάθε πελάτης παρουσιάζεται με ένα νούμερο - αριθμός προτεραιότητας Όσο ο Ουρές προτεραιότητας Πελάτες φθάνουν στο ταμείο μιας τράπεζας Eνα μόνο ταμείο είναι ανοικτό Κάθε πελάτης παρουσιάζεται με ένα νούμερο - αριθμός προτεραιότητας Όσο ο αριθμός είναι μεγάλος, τόσο οι πελάτες

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

Κεφάλαιο 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. Σωρός και Ταξινόµηση

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

Red- black δέντρα Εκτενείς Δομές Δεδομένων (Κεφ. 5)

Red- black δέντρα Εκτενείς Δομές Δεδομένων (Κεφ. 5) ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ Red- black δέντρα Εκτενείς Δομές Δεδομένων (Κεφ. ) Δομές Δεδομένων Μπαλτάς Αλέξανδρος 4 Μαρτίου 0 ampaltas@ceid.upatras.gr Περιεχόμενα. Εισαγωγή. Ορισμός red- black

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

ΔΥΑΔΙΚΗ ΑΝΑΖΗΤΗΣΗ & ΤΑΞΙΝΟΜΗΣΗ ΜΕ ΣΥΓΧΩΝΕΥΣΗ

ΔΥΑΔΙΚΗ ΑΝΑΖΗΤΗΣΗ & ΤΑΞΙΝΟΜΗΣΗ ΜΕ ΣΥΓΧΩΝΕΥΣΗ ΔΥΑΔΙΚΗ ΑΝΑΖΗΤΗΣΗ & ΤΑΞΙΝΟΜΗΣΗ ΜΕ ΣΥΓΧΩΝΕΥΣΗ (ΑΛΓΟΡΙΘΜΟΙ, Sanjoy Dasgupta, Christos Papadimitriou, Umesh Vazirani, σελ. 55-62 ΣΧΕΔΙΑΣΜΟΣ ΑΛΓΟΡΙΘΜΩΝ, Jon Kleinberg, Eva Tardos, Κεφάλαιο 5) Δυαδική αναζήτηση

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

Ουρά Προτεραιότητας (priority queue)

Ουρά Προτεραιότητας (priority queue) Ουρά Προτεραιότητας (priority queue) Δομή δεδομένων που υποστηρίζει δύο βασικές λειτουργίες : Εισαγωγή στοιχείου με δεδομένο κλειδί. Επιστροφή ενός στοιχείου με μέγιστο (ή ελάχιστο) κλειδί και διαγραφή

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

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

Μεταγλωττιστές. Δημήτρης Μιχαήλ. Ακ. Έτος 2011-2012. Ανοδικές Μέθοδοι Συντακτικής Ανάλυσης. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Μεταγλωττιστές Ανοδικές Μέθοδοι Συντακτικής Ανάλυσης Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2011-2012 Ανοδική Κατασκευή Συντακτικού Δέντρου κατασκευή δέντρου

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

Εισαγωγή στον Προγραμματισμό

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Έλεγχος Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2012-2013 Σχεσιακοί Τελεστές και Ισότητας Ένα πρόγραμμα εκτός από αριθμητικές πράξεις

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

Διάλεξη 07: Λίστες Ι Υλοποίηση & Εφαρμογές

Διάλεξη 07: Λίστες Ι Υλοποίηση & Εφαρμογές Διάλεξη 07: Λίστες Ι Υλοποίηση & Εφαρμογές Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Ευθύγραμμες Απλά Συνδεδεμένες Λίστες (εισαγωγή, εύρεση, διαγραφή) Ευθύγραμμες Διπλά Συνδεδεμένες Λίστες

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

Στοίβες με Δυναμική Δέσμευση Μνήμης

Στοίβες με Δυναμική Δέσμευση Μνήμης ΕΠΛ 231 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ 10/02/10 Παύλος Αντωνίου Στοίβες με Δυναμική Δέσμευση Μνήμης Στοίβα: Στοίβα είναι μια λίστα που έχει ένα επιπλέον περιορισμό. Ο περιορισμός είναι ότι οι εισαγωγές

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

Διάλεξη 2η: Αλγόριθμοι και Προγράμματα

Διάλεξη 2η: Αλγόριθμοι και Προγράμματα Διάλεξη 2η: Αλγόριθμοι και Προγράμματα Τμήμα Επιστήμης Υπολογιστών, Πανεπιστήμιο Κρήτης Εισαγωγή στην Επιστήμη Υπολογιστών Βασίζεται σε διαφάνειες του Κ Παναγιωτάκη Πρατικάκης (CSD) Αλγόριθμοι και Προγράμματα

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

Διάλεξη 15: Αναδρομή (Recursion) Διδάσκων: Παναγιώτης Ανδρέου

Διάλεξη 15: Αναδρομή (Recursion) Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 15: Αναδρομή (Recursion) Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Η έννοια της αναδρομής Μη αναδρομικός / Αναδρομικός Ορισμός Συναρτήσεων Παραδείγματα Ανάδρομης Αφαίρεση της Αναδρομής

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

Προγραμματισμός Ι. Δυναμική Διαχείριση Μνήμης. Δημήτρης Μιχαήλ. Ακ. Έτος 2011-2012. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Προγραμματισμός Ι. Δυναμική Διαχείριση Μνήμης. Δημήτρης Μιχαήλ. Ακ. Έτος 2011-2012. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Δυναμική Διαχείριση Μνήμης Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2011-2012 Ανάγκη για Δυναμική Μνήμη Στατική Μνήμη Μέχρι τώρα χρησιμοποιούσαμε

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

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

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

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

Υπολογιστικά & Διακριτά Μαθηματικά

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

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

ΗΥ240 - Παναγιώτα Φατούρου 2

ΗΥ240 - Παναγιώτα Φατούρου 2 ΕΝΟΤΗΤΑ ΥΛΟΠΟΙΗΣΗ ΛΕΞΙΚΩΝ ΜΕ ΙΣΟΖΥΓΙΣΜΕΝΑ ΕΝ ΡΑ ΗΥ24 - Παναγιώτα Φατούρου 1 Ισοζυγισµένα ένδρα Χρονική Πολυπλοκότητα αναζήτησης σε δοµές που έχουν ήδη διδάχθει: Στατική Μη-Ταξινοµηµένη Λίστα -> Ο(n), όπου

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

Αλγόριθμοι Ταξινόμησης Bubble Sort Quick Sort. Αντρέας Δημοσθένους Καθηγητής Πληροφορικής Ολυμπιάδα 2012

Αλγόριθμοι Ταξινόμησης Bubble Sort Quick Sort. Αντρέας Δημοσθένους Καθηγητής Πληροφορικής Ολυμπιάδα 2012 Αλγόριθμοι Ταξινόμησης Bubble Sort Quick Sort Αντρέας Δημοσθένους Καθηγητής Πληροφορικής Ολυμπιάδα 2012 3 5 1 Ταξινόμηση - Sorting Πίνακας Α 1 3 5 5 3 1 Ταξινόμηση (Φθίνουσα) Χωρίς Ταξινόμηση Ταξινόμηση

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

ΕΝΟΤΗΤΑ 4 ΣΥΝΟΛΑ - ΛΕΞΙΚΑ

ΕΝΟΤΗΤΑ 4 ΣΥΝΟΛΑ - ΛΕΞΙΚΑ ΕΝΟΤΗΤΑ 4 ΣΥΝΟΛΑ - ΛΕΞΙΚΑ ΗΥ240 - Παναγιώτα Φατούρου Σύνολα (Sets) Τα µέλη ενός συνόλου προέρχονται από κάποιο χώρο U αντικειµένων/στοιχείων (π.χ., σύνολα αριθµών, λέξεων, ζευγών αποτελούµενων από έναν

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

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση, Δίαβλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 14-1

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe, Ελληνική Έκδοση, Δίαβλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 14-1 Δίαβλος, Επιμέλεια Μ.Χατζόπουλος Διαφάνεια 14-1 Κεφάλαιο 14 Δομές Ευρετηρίων για Αρχεία Copyright 2007 Ramez Elmasri and Shamkant B. Navathe Ελληνική Έκδοση, Διαβλος, Επιμέλεια Μ.Χατζόπουλος Θα μιλήσουμε

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

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

Δομές Δεδομένων και Αλγόριθμοι Δομές Δεδομένων και Αλγόριθμοι Χρήστος Γκόγκος ΤΕΙ Ηπείρου Χειμερινό Εξάμηνο 2014-2015 Παρουσίαση 19 Hashing - Κατακερματισμός 1 / 23 Πίνακες απευθείας πρόσβασης (Direct Access Tables) Οι πίνακες απευθείας

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

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

Δομές Δεδομένων (Data Structures) Δομές Δεδομένων (Data Structures) Στοίβες Ουρές Στοίβες: Βασικές Έννοιες. Ουρές: Βασικές Έννοιες. Βασικές Λειτουργίες. Παραδείγματα. Στοίβες Δομή τύπου LIFO: Last In - First Out (τελευταία εισαγωγή πρώτη

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

Τα δεδομένα συνήθως αποθηκεύονται σε αρχεία στο δίσκο

Τα δεδομένα συνήθως αποθηκεύονται σε αρχεία στο δίσκο Οργάνωση Αρχείων 1 Αρχεία Τα δεδομένα συνήθως αποθηκεύονται σε αρχεία στο δίσκο Η μεταφορά δεδομένων από το δίσκο στη μνήμη και από τη μνήμη στο δίσκο γίνεται σε μονάδες blocks Βασικός στόχος η ελαχιστοποίηση

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

Θεωρία Υπολογισμού και Πολυπλοκότητα

Θεωρία Υπολογισμού και Πολυπλοκότητα Θεωρία Υπολογισμού και Πολυπλοκότητα Κεφάλαιο 10. Μηχανές Turing 20,23 Μαρτίου 2007 Δρ. Παπαδοπούλου Βίκη 1 Μηχανές Turing: Ένα Γενικό Μοντέλο Υπολογισμού Ποια μοντέλα υπολογισμού μπορούν να δεχθούν γλώσσες

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

Εισαγωγή στην επιστήμη των υπολογιστών

Εισαγωγή στην επιστήμη των υπολογιστών Εισαγωγή στην επιστήμη των υπολογιστών Υπολογιστές και Δεδομένα Κεφάλαιο 3ο Αναπαράσταση Αριθμών www.di.uoa.gr/~organosi 1 Δεκαδικό και Δυαδικό Δεκαδικό σύστημα 2 3 Δεκαδικό και Δυαδικό Δυαδικό Σύστημα

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

Υλοποίηση Λιστών. Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα:

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

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

Περιληπτικά, τα βήματα που ακολουθούμε γενικά είναι τα εξής:

Περιληπτικά, τα βήματα που ακολουθούμε γενικά είναι τα εξής: Αυτό που πρέπει να θυμόμαστε, για να μη στεναχωριόμαστε, είναι πως τόσο στις εξισώσεις, όσο και στις ανισώσεις 1ου βαθμού, που θέλουμε να λύσουμε, ακολουθούμε ακριβώς τα ίδια βήματα! Εκεί που πρεπει να

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

Σύστηµα Αρχείων και Καταλόγων

Σύστηµα Αρχείων και Καταλόγων ΕΠΛ 003 ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ Σύστηµα Αρχείων και Καταλόγων ιάλεξη 7 (Κεφάλαιο 11 του βιβλίου) Στόχοι Κεφαλαίου Περιγραφή της έννοιας του αρχείου, συστήµατος

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

υαδικό έντρο Αναζήτησης (BSTree)

υαδικό έντρο Αναζήτησης (BSTree) Εργαστήριο 6 υαδικό έντρο Αναζήτησης (BSTree) Εισαγωγή Οι περισσότερες δοµές δεδοµένων, που εξετάσαµε µέχρι τώρα (λίστες, στοίβες, ουρές) ήταν γραµ- µικές (ή δοµές δεδοµένων µιας διάστασης). Στην παράγραφο

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

5 ΔΕΝΤΡΑ (Trees) Σχήµα 5.1 : ενδροειδής αναπαράσταση αρχείων στα Windows. έντρα. \ {root directory} Accessories. Program Files.

5 ΔΕΝΤΡΑ (Trees) Σχήµα 5.1 : ενδροειδής αναπαράσταση αρχείων στα Windows. έντρα. \ {root directory} Accessories. Program Files. 5 ΔΕΝΤΡΑ (Trees) Oι περισσότερες δοµές δεδοµένων που εξετάσαµε µέχρι τώρα (λίστες, στοίβες, ουρές) ήταν γραµµικές (ή δοµές δεδοµένων µιας διάστασης). Στην παράγραφο αυτή θα ασχοληθούµε µε τις µή-γραµµικές

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

Θεωρία Υπολογισμού και Πολυπλοκότητα Ασυμφραστικές Γλώσσες (3)

Θεωρία Υπολογισμού και Πολυπλοκότητα Ασυμφραστικές Γλώσσες (3) Θεωρία Υπολογισμού και Πολυπλοκότητα Ασυμφραστικές Γλώσσες (3) Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Μη Ασυμφραστικές Γλώσσες (2.3) Λήμμα Άντλησης για Ασυμφραστικές Γλώσσες Παραδείγματα

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

ΒΑΣΕΙΣ Ε ΟΜΕΝΩΝ. Επίπεδα Αφαίρεσης Σ Β. Αποθήκευση Εγγραφών - Ευρετήρια. ρ. Βαγγελιώ Καβακλή ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ, Επίπεδο Όψεων.

ΒΑΣΕΙΣ Ε ΟΜΕΝΩΝ. Επίπεδα Αφαίρεσης Σ Β. Αποθήκευση Εγγραφών - Ευρετήρια. ρ. Βαγγελιώ Καβακλή ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ, Επίπεδο Όψεων. ΒΑΣΕΙΣ Ε ΟΜΕΝΩΝ Χειµερινό Εξάµηνο 2002 Αποθήκευση Εγγραφών - Ευρετήρια ρ Βαγγελιώ Καβακλή ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ, ΤΜΗΜΑ ΠΟΛΙΤΙΣΜΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ Επίπεδα Αφαίρεσης Σ Β Επίπεδο Όψεων Όψη Όψη

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

Αλγόριθμοι και πολυπλοκότητα: 4 η σειρά ασκήσεων ΣΗΜΜΥ - Ε.Μ.Π.

Αλγόριθμοι και πολυπλοκότητα: 4 η σειρά ασκήσεων ΣΗΜΜΥ - Ε.Μ.Π. Αλγόριθμοι και πολυπλοκότητα: 4 η σειρά ασκήσεων CO.RE.LAB. ΣΗΜΜΥ - Ε.Μ.Π. Άσκηση 1 η : Παιχνίδι επιλογής ακμών Έχουμε ένα ακυκλικό κατευθυνόμενο γράφο, μια αρχική κορυφή και δυο παίκτες. Οι παίκτες διαδοχικά

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

Εισαγωγή στον Προγραμματισμό

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

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

Συλλογές, Στοίβες και Ουρές

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

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

Διάλεξη 06: Συνδεδεμένες Λίστες & Εφαρμογές Στοιβών και Ουρών

Διάλεξη 06: Συνδεδεμένες Λίστες & Εφαρμογές Στοιβών και Ουρών ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 1 Διάλεξη 06: Συνδεδεμένες Λίστες & Εφαρμογές Στοιβών και Ουρών Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Υλοποίηση ΑΤΔ με Συνδεδεμένες Λίστες -

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

Οι βασικές λειτουργίες (ή πράξεις) που γίνονται σε μια δομή δεδομένων είναι:

Οι βασικές λειτουργίες (ή πράξεις) που γίνονται σε μια δομή δεδομένων είναι: ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Μια δομή δεδομένων στην πληροφορική, συχνά αναπαριστά οντότητες του φυσικού κόσμου στον υπολογιστή. Για την αναπαράσταση αυτή, δημιουργούμε πρώτα ένα αφηρημένο μοντέλο στο οποίο προσδιορίζονται

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

Διάλεξη 21η: Απλά Συνδεδεμένες Λίστες

Διάλεξη 21η: Απλά Συνδεδεμένες Λίστες Διάλεξη 21η: Απλά Συνδεδεμένες Λίστες Τμήμα Επιστήμης Υπολογιστών, Πανεπιστήμιο Κρήτης Εισαγωγή στην Επιστήμη Υπολογιστών Πρατικάκης (CSD) Απλές Λίστες CS100, 2015-2016 1 / 10 Δομές δεδομένων Ορισμός:

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

Λειτουργικά Συστήματα (ΙΙ) (διαχείριση αρχείων)

Λειτουργικά Συστήματα (ΙΙ) (διαχείριση αρχείων) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2015-16 Λειτουργικά Συστήματα (ΙΙ) (διαχείριση αρχείων) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Λειτουργικό Σύστημα:

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

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

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

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

Τμήμα Χρηματοοικονομικής & Ελεγκτικής ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας. Πληροφορική Ι. Αναπαράσταση αριθμών στο δυαδικό σύστημα. Δρ.

Τμήμα Χρηματοοικονομικής & Ελεγκτικής ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας. Πληροφορική Ι. Αναπαράσταση αριθμών στο δυαδικό σύστημα. Δρ. Τμήμα Χρηματοοικονομικής & Ελεγκτικής ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας Πληροφορική Ι Αναπαράσταση αριθμών στο δυαδικό σύστημα Δρ. Γκόγκος Χρήστος Δεκαδικό σύστημα αρίθμησης Ελληνικό - Ρωμαϊκό Σύστημα αρίθμησης

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΣΧΟΛΙΚΟΥ ΕΤΟΥΣ 2013-2014

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΣΧΟΛΙΚΟΥ ΕΤΟΥΣ 2013-2014 ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΣΧΟΛΙΚΟΥ ΕΤΟΥΣ 2013-2014 Επιμέλεια: Ομάδα Διαγωνισμάτων από το Στέκι των Πληροφορικών Θέμα Α A1. Να γράψετε στο τετράδιό σας τους

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

Τμήμα Οικιακής Οικονομίας και Οικολογίας. Οργάνωση Υπολογιστών

Τμήμα Οικιακής Οικονομίας και Οικολογίας. Οργάνωση Υπολογιστών Οργάνωση Υπολογιστών Υπολογιστικό Σύστημα Λειτουργικό Σύστημα Αποτελεί τη διασύνδεση μεταξύ του υλικού ενός υπολογιστή και του χρήστη (προγραμμάτων ή ανθρώπων). Είναι ένα πρόγραμμα (ή ένα σύνολο προγραμμάτων)

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

Αριθμητικές Μέθοδοι σε Προγραμματιστικό Περιβάλλον

Αριθμητικές Μέθοδοι σε Προγραμματιστικό Περιβάλλον Τμήμα Μηχανικών Πληροφορικής Αριθμητικές Μέθοδοι σε Προγραμματιστικό Περιβάλλον Δρ. Δημήτρης Βαρσάμης Επίκουρος Καθηγητής Οκτώβριος 2014 Δρ. Δημήτρης Βαρσάμης Οκτώβριος 2014 1 / 42 Αριθμητικές Μέθοδοι

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

Εισαγωγή στον Προγραμματισμό

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Ψευδοτυχαίοι Αριθμοί Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2012-2013 Ψευδοτυχαίοι Αριθμοί Μια γεννήτρια ψευδοτυχαίων αριθμών είναι

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

Κεφάλαιο 14. οµές Ευρετηρίων για Αρχεία. ιαφάνεια 14-1

Κεφάλαιο 14. οµές Ευρετηρίων για Αρχεία. ιαφάνεια 14-1 ιαφάνεια 14-1 Κεφάλαιο 14 οµές Ευρετηρίων για Αρχεία Copyright 2007 Ramez Elmasri and Shamkant B. NavatheΕλληνικήΈκδοση, ιαβλος, Επιµέλεια Μ.Χατζόπουλος 1 Θα µιλήσουµε για Τύποι Ταξινοµηµένων Ευρετηρίων

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

Υπερπροσαρμογή (Overfitting) (1)

Υπερπροσαρμογή (Overfitting) (1) Αλγόριθμος C4.5 Αποφυγή υπερπροσαρμογής (overfitting) Reduced error pruning Rule post-pruning Χειρισμός χαρακτηριστικών συνεχών τιμών Επιλογή κατάλληλης μετρικής για την επιλογή των χαρακτηριστικών διάσπασης

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

Μεθοδολογία Επίλυσης Προβλημάτων ============================================================================ Π. Κυράνας - Κ.

Μεθοδολογία Επίλυσης Προβλημάτων ============================================================================ Π. Κυράνας - Κ. Μεθοδολογία Επίλυσης Προβλημάτων ============================================================================ Π. Κυράνας - Κ. Σάλαρης Πολλές φορές μας δίνεται να λύσουμε ένα πρόβλημα που από την πρώτη

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

1. Πότε χρησιμοποιούμε την δομή επανάληψης; Ποιες είναι οι διάφορες εντολές (μορφές) της;

1. Πότε χρησιμοποιούμε την δομή επανάληψης; Ποιες είναι οι διάφορες εντολές (μορφές) της; 1. Πότε χρησιμοποιούμε την δομή επανάληψης; Ποιες είναι οι διάφορες (μορφές) της; Η δομή επανάληψης χρησιμοποιείται όταν μια σειρά εντολών πρέπει να εκτελεστεί σε ένα σύνολο περιπτώσεων, που έχουν κάτι

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

Τα µπιτ και η σηµασία τους. Σχήµα bit. ΚΕΦΑΛΑΙΟ 1: Αποθήκευση εδοµένων (1/2) 1.7 Αποθήκευση κλασµάτων 1.8 Συµπίεση δεδοµένων 1.9 Σφάλµατα επικοινωνίας

Τα µπιτ και η σηµασία τους. Σχήµα bit. ΚΕΦΑΛΑΙΟ 1: Αποθήκευση εδοµένων (1/2) 1.7 Αποθήκευση κλασµάτων 1.8 Συµπίεση δεδοµένων 1.9 Σφάλµατα επικοινωνίας ΚΕΦΑΛΑΙΟ 1: Αποθήκευση εδοµένων (1/2) ΚΕΦΑΛΑΙΟ 1: Αποθήκευση εδοµένων (2/2) 1.1 Τα bits και ο τρόπος που αποθηκεύονται 1.2 Κύρια µνήµη 1.3 Αποθηκευτικά µέσα 1.4 Αναπαράσταση πληροφοριών ως σχηµάτων bits

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

Αποθήκευση εδομένων. ομή ενός Σ Β. Εισαγωγή Το «εσωτερικό» ενός ΜΕΡΟΣ Β : Η (εσωτερική) αρχιτεκτονική ενός Σ Β είναι σε επίπεδα

Αποθήκευση εδομένων. ομή ενός Σ Β. Εισαγωγή Το «εσωτερικό» ενός ΜΕΡΟΣ Β : Η (εσωτερική) αρχιτεκτονική ενός Σ Β είναι σε επίπεδα Αποθήκευση εδομένων Βάσεις Δεδομένων 2009-2010 Ευαγγελία Πιτουρά 1 ΜΕΡΟΣ Β : Εισαγωγή Το «εσωτερικό» ενός Σ Β ομή ενός Σ Β Η (εσωτερική) αρχιτεκτονική ενός Σ Β είναι σε επίπεδα Τυπικά, κάθε σχέση σε ένα

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

Προγραμματισμός Ι. Είσοδος/Έξοδος. Δημήτρης Μιχαήλ. Ακ. Έτος 2009-2010. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Προγραμματισμός Ι. Είσοδος/Έξοδος. Δημήτρης Μιχαήλ. Ακ. Έτος 2009-2010. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Είσοδος/Έξοδος Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2009-2010 Είσοδος/Έξοδος Μέχρι τώρα όποτε θέλαμε να διαβάσουμε χρησιμοποιούσαμε πάντα

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

Ν!=1*2*3* *(N-1) * N => N! = (Ν-1)! * N έτσι 55! = 54! * 55

Ν!=1*2*3* *(N-1) * N => N! = (Ν-1)! * N έτσι 55! = 54! * 55 ΑΝΑ ΡΟΜΗ- ΑΣΚΗΣΕΙΣ Μια µέθοδος είναι αναδροµική όταν καλεί τον εαυτό της και έχει µια συνθήκη τερµατισµού π.χ. το παραγοντικό ενός αριθµού Ν, µπορεί να καλεί το παραγοντικό του αριθµού Ν-1 το παραγοντικό

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

Εισαγωγή στην επιστήμη των υπολογιστών. Λογισμικό Υπολογιστών Κεφάλαιο 8ο Αλγόριθμοι

Εισαγωγή στην επιστήμη των υπολογιστών. Λογισμικό Υπολογιστών Κεφάλαιο 8ο Αλγόριθμοι Εισαγωγή στην επιστήμη των υπολογιστών Λογισμικό Υπολογιστών Κεφάλαιο 8ο Αλγόριθμοι 1 Έννοια Ανεπίσημα, ένας αλγόριθμος είναι μια βήμα προς βήμα μέθοδος για την επίλυση ενός προβλήματος ή την διεκπεραίωση

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

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

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΦΡΟΝΤΙΣΤΗΡΙΟ ΑΛΓΟΡΙΘΜΩΝ ΒΟΗΘΟΣ: ΒΑΓΓΕΛΗΣ ΔΟΥΡΟΣ 1 ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΦΡΟΝΤΙΣΤΗΡΙΟ ΑΛΓΟΡΙΘΜΩΝ ΒΟΗΘΟΣ: ΒΑΓΓΕΛΗΣ ΔΟΥΡΟΣ Φροντιστήριο #10: Αλγόριθμοι Διαίρει & Βασίλευε: Master Theorem, Αλγόριθμοι Ταξινόμησης, Πιθανοτικός

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

Επαρκή χωρητικότητα αποθήκευσης Αποδεκτό επίπεδο μέσης απόδοσης Χαμηλό μέσο κόστος ανά δυαδικό δ ψηφίο

Επαρκή χωρητικότητα αποθήκευσης Αποδεκτό επίπεδο μέσης απόδοσης Χαμηλό μέσο κόστος ανά δυαδικό δ ψηφίο ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ Ι Κεφάλαιο 51&52 5.1 5.2 Σύστημα μνήμης Αρχιτεκτονική Υπολογιστών,, Δημήτριος B. Νικολός, 2η η Έκδοση, Έκδοση Δ. Β. Νικολού,, 2012 Κύριος Σκοπός κατά τη Σχεδίαση του Συστήματος

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

ΚΕΦΑΛΑΙΟ 12: Θεωρία υπολογισµών

ΚΕΦΑΛΑΙΟ 12: Θεωρία υπολογισµών ΚΕΦΑΛΑΙΟ 12: Θεωρία υπολογισµών 1 Συναρτήσεις και ο υπολογισµός τους 2 Μηχανές Turing 3 Καθολικές γλώσσες προγραµµατισµού 4 Μια µη υπολογίσιµη συνάρτηση 5 Πολυπλοκότητα προβληµάτων 1 Συναρτήσεις Μία συνάρτηση

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

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

Προγραμματισμός Ι. Προχωρημένα Θέματα. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Προχωρημένα Θέματα Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ανακατεύθυνση Εισόδου/Εξόδου Συνήθως η τυπική είσοδος ενός προγράμματος (stdin) προέρχεται

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

ΠΛΗ111. Ανοιξη 2005. Μάθηµα 3 ο. Συνδεδεµένες Λίστες. Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης

ΠΛΗ111. Ανοιξη 2005. Μάθηµα 3 ο. Συνδεδεµένες Λίστες. Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης ΠΛΗ111 οµηµένος Προγραµµατισµός Ανοιξη 2005 Μάθηµα 3 ο Συνδεδεµένες Λίστες Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης Ανασκόπηση ΟΑΤ λίστα Ακολουθιακή λίστα Συνδεδεµένη λίστα

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

Προγραμματισμός Ι. Πολλαπλά Αρχεία. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Προγραμματισμός Ι. Πολλαπλά Αρχεία. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Πολλαπλά Αρχεία Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Πολλαπλά Αρχεία Όταν γράφουμε μεγάλα προγράμματα θέλουμε να έχουμε ανεξάρτητα κομμάτια κώδικα

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

7ο ΕΡΓΑΣΤΗΡΙΟ AAAABBBBAAAAABBBBBBCCCCCCCCCCCCCCBBABAAAABBBBBBCCCCD

7ο ΕΡΓΑΣΤΗΡΙΟ AAAABBBBAAAAABBBBBBCCCCCCCCCCCCCCBBABAAAABBBBBBCCCCD ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΛΑΜΙΑΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ ΥΠΟΛΟΓΙΣΤΩΝ ΣΧΕΔΙΑΣΜΟΣ ΚΑΙ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ 2010 11 Ιστοσελίδα μαθήματος: http://eclass.teilam.gr/di288 1 Συμπίεση

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

Εισαγωγή στον Προγραμματισμό

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Αριθμητική Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2012-2013 Δεύτερο Πρόγραμμα 1 / * Second Simple Program : add 2 numbers * / 2

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

Κεφάλαιο 3. Αλγόριθµοι Τυφλής Αναζήτησης. Τεχνητή Νοηµοσύνη - Β' Έκδοση. Ι. Βλαχάβας, Π. Κεφαλάς, Ν. Βασιλειάδης, Φ. Κόκκορας, Η.

Κεφάλαιο 3. Αλγόριθµοι Τυφλής Αναζήτησης. Τεχνητή Νοηµοσύνη - Β' Έκδοση. Ι. Βλαχάβας, Π. Κεφαλάς, Ν. Βασιλειάδης, Φ. Κόκκορας, Η. Κεφάλαιο 3 Αλγόριθµοι Τυφλής Αναζήτησης Τεχνητή Νοηµοσύνη - Β' Έκδοση Ι. Βλαχάβας, Π. Κεφαλάς, Ν. Βασιλειάδης, Φ. Κόκκορας, Η. Σακελλαρίου Αλγόριθµοι Τυφλής Αναζήτησης Οι αλγόριθµοι τυφλής αναζήτησης (blind

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

math-gr Παντελής Μπουμπούλης, M.Sc., Ph.D. σελ. 2 math-gr.blogspot.com, bouboulis.mysch.gr

math-gr Παντελής Μπουμπούλης, M.Sc., Ph.D. σελ. 2 math-gr.blogspot.com, bouboulis.mysch.gr III Όριο Παντελής Μπουμπούλης, MSc, PhD σελ blogspotcom, bouboulismyschgr ΜΕΡΟΣ Πεπερασμένο Όριο στο Α Ορισμός Όριο στο : Όταν οι τιμές μιας συνάρτησης f προσεγγίζουν όσο θέλουμε έναν πραγματικό αριθμό,

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

Αλγόριθμοι Τυφλής Αναζήτησης

Αλγόριθμοι Τυφλής Αναζήτησης Τεχνητή Νοημοσύνη 04 Αλγόριθμοι Τυφλής Αναζήτησης Αλγόριθμοι Τυφλής Αναζήτησης (Blind Search Algorithms) Εφαρμόζονται σε προβλήματα στα οποία δεν υπάρχει πληροφορία που να επιτρέπει αξιολόγηση των καταστάσεων.

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

Πληρουορική Γ Γσμμασίοσ

Πληρουορική Γ Γσμμασίοσ Πληρουορική Γ Γσμμασίοσ Προγραμματισμός και Αλγόριθμοι Από το και τημ Χελώμα στημ Ευριπίδης Βραχνός http://evripides.mysch.gr/ 2014 2015 1 Προγραμματισμός Ζάννειο Πρότυπο Πειραματικό Γυμνάσιο Πειραιά Ενότητα:

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

Δομές Δεδομένων. Ενότητα 4: Ο ΑΤΔ Λίστα & Υλοποίηση Λίστας με σειριακή αποθήκευση- Ο ΑΤΔ Συνδεδεμένη Λίστα- Υλοποίηση ΑΤΔ Συνδεδεμένη Λίστα με πίνακα

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

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

Μαθηματικά των Υπολογιστών και των Αποφάσεων Τεχνητή Νοημοσύνη 1η Σειρά Ασκήσεων

Μαθηματικά των Υπολογιστών και των Αποφάσεων Τεχνητή Νοημοσύνη 1η Σειρά Ασκήσεων Π Π Τ Μ Τ Μ Η/Υ Π Δ Μ Π Μαθηματικά των Υπολογιστών και των Αποφάσεων Τεχνητή Νοημοσύνη 1η Σειρά Ασκήσεων Φοιτητής: Ν. Χασιώτης (AM: 0000) Καθηγητής: Ι. Χατζηλυγερούδης 22 Οκτωβρίου 2010 ΑΣΚΗΣΗ 1. Δίνεται

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