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

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

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

Transcript

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

2 Λεξικό Dictionary Ένα λεξικό (dictionary) είναι ένας αφηρημένος τύπος δεδομένων (ΑΤΔ) που διατηρεί ένα σύνολο στοιχείων με κλειδιά και υποστηρίζει τις εξής λειτουργίες: insert(item): προσθήκη του item στο σύνολο delete(item): διαγραφή του item από το σύνολο search(key): επιστροφή του αντικειμένου με κλειδί key εαν υπάρχει Υποθέτουμε πως τα κλειδιά έχουν μοναδικά κλειδιά ή πως αντικαθιστούμε αντικείμενα με ίδια κλειδιά. Χαροκόπειο Πανεπιστήμιο 2/33

3 Χρησιμότητα Το λεξικό είναι μια από τις σημαντικότερες δομές δεδομένων στην επιστήμη των υπολογιστών. Υπάρχουν υλοποιημένα στις περισσότερες γλώσσες προγραμματισμού: C++, C#, Java, Python, Perl, Ruby, Σε μερικές από αυτές είναι ενσωματωμένα μέσα στην ίδια την γλώσσα. Χαροκόπειο Πανεπιστήμιο 3/33

4 Χρησιμότητα Παραδείγματα μηχανές αναζήτησης web: λέξη σελίδες που περιέχουν την λέξη μεταγλωττιστές: όνομα μεταβλητή network routers: διεύθυνση IP καλώδιο network server: port εφαρμογή εικονική μνήμη: virtual address physical address Χαροκόπειο Πανεπιστήμιο 4/33

5 Ισοζυγισμένα ΔΔΑ Balanced BSTs Λεξικό με O(log n) χρόνο για εισαγωγή, διαγραφή, αναζήτηση. Προυποθέτει σύνολο που είναι διατεταγμένο από μία σχέση. Υποστηρίζουν όμως και πολλές άλλες λειτουργίες. Χαροκόπειο Πανεπιστήμιο 5/33

6 Ισοζυγισμένα ΔΔΑ Balanced BSTs Λεξικό με O(log n) χρόνο για εισαγωγή, διαγραφή, αναζήτηση. Προυποθέτει σύνολο που είναι διατεταγμένο από μία σχέση. Υποστηρίζουν όμως και πολλές άλλες λειτουργίες. Στόχος Θέλουμε O(1) χρόνο για κάθε λειτουργία. Χαροκόπειο Πανεπιστήμιο 5/33

7 Λεξικά Η πιο απλή λύση, απευθείας πρόσβαση σε πίνακα: αποθηκεύουμε τα αντικείμενα σε ένα πίνακα στην διεύθυνση του κλειδιού (τυχαία προσπέλαση) προβλήματα: 1 τα κλειδιά πρέπει να είναι μη αρνητικά (αλλιώς δύο πίνακες) 2 μεγάλο εύρος κλειδιών πολύ χώρος π.χ ένα κλειδί είναι ένα Petabyte key key value value Χαροκόπειο Πανεπιστήμιο 6/33

8 Κατακερματισμός Μειώνουμε το σύνολο U όλων των κλειδιών (π.χ ακέραιοι) σε ένα μικρότερο πιο ρεαλιστικό μέγεθος m ενός πίνακα. Ιδέα m n = αριθμός κλειδιών αποθηκευμένα στο λεξικό Συνάρτηση Κατακερματισμού (hash function) h : U {0, 1,..., m 1} T U k1 k3 k2 k3 k1 0 1 k2 m-1 Δύο κλειδιά x και y συγκρούονται (collide) εάν h(x) = h(y). Χαροκόπειο Πανεπιστήμιο 7/33

9 Επίλυση Συγκρούσεων Σύγκρουση Όταν για δύο κλειδιά k 1 και k 2 ισχύει h(k 1) = h(k 2). Χαροκόπειο Πανεπιστήμιο 8/33

10 Επίλυση Συγκρούσεων Σύγκρουση Όταν για δύο κλειδιά k 1 και k 2 ισχύει h(k 1) = h(k 2). Θα δούμε δύο τρόπους επίλυσης: 1 Αλυσιδωτός κατακερματισμός (chaining) 2 Ανοιχτή διευθυνσιοδότηση (open addressing) Χαροκόπειο Πανεπιστήμιο 8/33

11 Αλυσιδωτός Κατακερματισμός Hashing with Chaining Λύνουμε το πρόβλημα της σύγκρουσης κρατώντας μια λίστα στοιχείων σε κάθε διεύθυνση του πίνακα κατακερματισμού. Χαροκόπειο Πανεπιστήμιο 9/33

12 Αλυσιδωτός Κατακερματισμός Hashing with Chaining εισαγωγή στοιχείου e με κλειδί key εισαγωγή στην λίστα T[h(key)] σταθερός χρόνος (θεωρώντας πως η συνάρτηση κατακερματισμού πέρνει επίσης σταθερό χρόνο) διαγραφή στοιχείου με κλειδί key αναζήτηση στη λίστα T[h(key)] και διαγραφή εάν δεν υπάρχει και όλα τα στοιχεία είναι στην θέση h(key) τότε στην χειρότερη περίπτωση Θ(n) αναζήτηση στοιχείου με κλειδί key αναζήτηση στη λίστα T[h(key)] εάν δεν υπάρχει και όλα τα στοιχεία είναι στην θέση h(key) τότε στην χειρότερη περίπτωση Θ(n) Χώρος O(n + m) Χαροκόπειο Πανεπιστήμιο 10/33

13 Συναρτήσεις Κατακερματισμού H συνάρτηση κατακερματισμού παίζει πάρα πολύ σημαντικό ρόλο στην απόδοση. Χαροκόπειο Πανεπιστήμιο 11/33

14 Συναρτήσεις Κατακερματισμού H συνάρτηση κατακερματισμού παίζει πάρα πολύ σημαντικό ρόλο στην απόδοση. Επιθυμητές Ιδιότητες Κατακερματισμού 1 τα κλειδιά πρέπει να διαμοιράζονται ομοιόμορφα ώστε να μην έχουμε πολλές συγκρούσεις ο αριθμός των συγκρούσεων επηρεάζει τον χρόνο αναζήτησης και διαγραφής Χαροκόπειο Πανεπιστήμιο 11/33

15 Συναρτήσεις Κατακερματισμού H συνάρτηση κατακερματισμού παίζει πάρα πολύ σημαντικό ρόλο στην απόδοση. Επιθυμητές Ιδιότητες Κατακερματισμού 1 τα κλειδιά πρέπει να διαμοιράζονται ομοιόμορφα ώστε να μην έχουμε πολλές συγκρούσεις ο αριθμός των συγκρούσεων επηρεάζει τον χρόνο αναζήτησης και διαγραφής 2 m = O(n) θέλουμε να ισχύει η ιδιότητα (1) χωρίς το μέγεθος του πίνακα m να είναι πολύ μεγαλύτερο από τον αριθμό των στοιχείων n. Χαροκόπειο Πανεπιστήμιο 11/33

16 Συναρτήσεις Κατακερματισμού H συνάρτηση κατακερματισμού παίζει πάρα πολύ σημαντικό ρόλο στην απόδοση. Επιθυμητές Ιδιότητες Κατακερματισμού 1 τα κλειδιά πρέπει να διαμοιράζονται ομοιόμορφα ώστε να μην έχουμε πολλές συγκρούσεις ο αριθμός των συγκρούσεων επηρεάζει τον χρόνο αναζήτησης και διαγραφής 2 m = O(n) θέλουμε να ισχύει η ιδιότητα (1) χωρίς το μέγεθος του πίνακα m να είναι πολύ μεγαλύτερο από τον αριθμό των στοιχείων n. 3 η συνάρτηση h πρέπει να είναι πολύ γρήγορη, θέλουμε η συνάρτηση να υπολογίζεται σε σταθερό χρόνο Χαροκόπειο Πανεπιστήμιο 11/33

17 Συναρτήσεις Κατακερματισμού Άσχημα Νέα Θεώρημα Για κάθε συνάρτηση κατακερματισμού h, εάν U > (n 1) m + 1, υπάρχει ένα σύνολο S μεγέθους n που όλα τα στοιχεία του κατακερματίζονται στην ίδια θέση. Απόδειξη Απευθείας από την αρχή του περιστερώνα. Χαροκόπειο Πανεπιστήμιο 12/33

18 Συναρτήσεις Κατακερματισμού Άσχημα Νέα Θεώρημα Για κάθε συνάρτηση κατακερματισμού h, εάν U > (n 1) m + 1, υπάρχει ένα σύνολο S μεγέθους n που όλα τα στοιχεία του κατακερματίζονται στην ίδια θέση. Απόδειξη Απευθείας από την αρχή του περιστερώνα. Εμείς θέλουμε μια συνάρτηση καλή για κάθε σύνολο στοιχείων, το οποίο δεν γίνεται σύμφωνα με το παραπάνω θεώρημα. Στην πράξη για μερικά τυπικά σύνολα S υπάρχουν απλές συναρτήσεις κατακερματισμού που λειτουργούν καλά. Χαροκόπειο Πανεπιστήμιο 12/33

19 Συναρτήσεις Κατακερματισμού Άσχημα Νέα Θεώρημα Για κάθε συνάρτηση κατακερματισμού h, εάν U > (n 1) m + 1, υπάρχει ένα σύνολο S μεγέθους n που όλα τα στοιχεία του κατακερματίζονται στην ίδια θέση. Απόδειξη Απευθείας από την αρχή του περιστερώνα. Εμείς θέλουμε μια συνάρτηση καλή για κάθε σύνολο στοιχείων, το οποίο δεν γίνεται σύμφωνα με το παραπάνω θεώρημα. Για να λύσουμε το πρόβλημα για οποιοδήποτε σύνολο προσθέτουμε τυχαίοτητα. Από ένα σύνολο H από συναρτήσεις επιλέγουμε μία συνάρτηση h τυχαία. Χαροκόπειο Πανεπιστήμιο 13/33

20 Συναρτήσεις Κατακερματισμού H συνάρτηση κατακερματισμού παίζει πάρα πολύ σημαντικό ρόλο στην απόδοση. Έστω H το σύνολο όλων των συναρτήσεων από το U στο 0... m 1. Ας υποθέσουμε πως η συνάρτηση h διαλέγεται τυχαία από το H. Θεώρημα Εάν n στοιχεία είναι αποθηκευμένα σε ένα πίνακα κατακερματισμού με m θέσεις με την χρήση μιας τυχαίας συνάρτησης κατακερματισμού, τότε ο αναμενόμενος χρόνος εκτέλεσης της διαγραφής ή αναζήτησης είναι O(1 + n m ). Χαροκόπειο Πανεπιστήμιο 14/33

21 Τυχαία Συνάρτηση Κατακερματισμού Θεώρημα Εάν n στοιχεία είναι αποθηκευμένα σε ένα πίνακα κατακερματισμού με m θέσεις με την χρήση μιας τυχαίας συνάρτησης κατακερματισμού, τότε ο αναμενόμενος χρόνος εκτέλεσης της διαγραφής ή αναζήτησης είναι O(1 + n m ). Απόδειξη Για ένα συγκεκριμένο κλειδί k οι συναρτήσεις αναζήτησης και διαγραφής χρειάζονται χρόνο σταθερό συν τον χρόνο να διαβάσουν την λίστα T[h(k)]. Χαροκόπειο Πανεπιστήμιο 15/33

22 Τυχαία Συνάρτηση Κατακερματισμού Θεώρημα Εάν n στοιχεία είναι αποθηκευμένα σε ένα πίνακα κατακερματισμού με m θέσεις με την χρήση μιας τυχαίας συνάρτησης κατακερματισμού, τότε ο αναμενόμενος χρόνος εκτέλεσης της διαγραφής ή αναζήτησης είναι O(1 + n m ). Απόδειξη Για ένα συγκεκριμένο κλειδί k οι συναρτήσεις αναζήτησης και διαγραφής χρειάζονται χρόνο σταθερό συν τον χρόνο να διαβάσουν την λίστα T[h(k)]. Ο αναμενόμενος χρόνος είναι O(1 + E[X]) όπου X είναι η τυχαία μεταβλητή που υποδηλώνει το μέγεθος της λίστας T[h(k)]. Χαροκόπειο Πανεπιστήμιο 15/33

23 Τυχαία Συνάρτηση Κατακερματισμού Θεώρημα Εάν n στοιχεία είναι αποθηκευμένα σε ένα πίνακα κατακερματισμού με m θέσεις με την χρήση μιας τυχαίας συνάρτησης κατακερματισμού, τότε ο αναμενόμενος χρόνος εκτέλεσης της διαγραφής ή αναζήτησης είναι O(1 + n m ). Απόδειξη Για ένα συγκεκριμένο κλειδί k οι συναρτήσεις αναζήτησης και διαγραφής χρειάζονται χρόνο σταθερό συν τον χρόνο να διαβάσουν την λίστα T[h(k)]. Ο αναμενόμενος χρόνος είναι O(1 + E[X]) όπου X είναι η τυχαία μεταβλητή που υποδηλώνει το μέγεθος της λίστας T[h(k)]. Έστω S το σύνολο των n στοιχείων που είναι αποθηκευμένα. Για κάθε e S, έστω X e η τυχαία μεταβλητή (indicator) όπου X e = 1 εάν h(e) = h(k) και X e = 0 αλλιώς. Χαροκόπειο Πανεπιστήμιο 15/33

24 Τυχαία Συνάρτηση Κατακερματισμού Θεώρημα Εάν n στοιχεία είναι αποθηκευμένα σε ένα πίνακα κατακερματισμού με m θέσεις με την χρήση μιας τυχαίας συνάρτησης κατακερματισμού, τότε ο αναμενόμενος χρόνος εκτέλεσης της διαγραφής ή αναζήτησης είναι O(1 + n m ). Απόδειξη Για ένα συγκεκριμένο κλειδί k οι συναρτήσεις αναζήτησης και διαγραφής χρειάζονται χρόνο σταθερό συν τον χρόνο να διαβάσουν την λίστα T[h(k)]. Ο αναμενόμενος χρόνος είναι O(1 + E[X]) όπου X είναι η τυχαία μεταβλητή που υποδηλώνει το μέγεθος της λίστας T[h(k)]. Έστω S το σύνολο των n στοιχείων που είναι αποθηκευμένα. Για κάθε e S, έστω X e η τυχαία μεταβλητή (indicator) όπου X e = 1 εάν h(e) = h(k) και X e = 0 αλλιώς. Έχουμε X = e S X e. Χαροκόπειο Πανεπιστήμιο 15/33

25 Τυχαία Συνάρτηση Κατακερματισμού Θεώρημα Εάν n στοιχεία είναι αποθηκευμένα σε ένα πίνακα κατακερματισμού με m θέσεις με την χρήση μιας τυχαίας συνάρτησης κατακερματισμού, τότε ο αναμενόμενος χρόνος εκτέλεσης της διαγραφής ή αναζήτησης είναι O(1 + n m ). Απόδειξη Για ένα συγκεκριμένο κλειδί k οι συναρτήσεις αναζήτησης και διαγραφής χρειάζονται χρόνο σταθερό συν τον χρόνο να διαβάσουν την λίστα T[h(k)]. Ο αναμενόμενος χρόνος είναι O(1 + E[X]) όπου X είναι η τυχαία μεταβλητή που υποδηλώνει το μέγεθος της λίστας T[h(k)]. Έστω S το σύνολο των n στοιχείων που είναι αποθηκευμένα. Για κάθε e S, έστω X e η τυχαία μεταβλητή (indicator) όπου X e = 1 εάν h(e) = h(k) και X e = 0 αλλιώς. Έχουμε X = e S X e. Χρησιμοποιώντας την γραμμικότητα της μέσης τιμής πέρνουμε E[X] = E[ X e ] = e S e S E[X e ] = e Sprob(X e = 1). Χαροκόπειο Πανεπιστήμιο 15/33

26 Τυχαία Συνάρτηση Κατακερματισμού Θεώρημα Εάν n στοιχεία είναι αποθηκευμένα σε ένα πίνακα κατακερματισμού με m θέσεις με την χρήση μιας τυχαίας συνάρτησης κατακερματισμού, τότε ο αναμενόμενος χρόνος εκτέλεσης της διαγραφής ή αναζήτησης είναι O(1 + n m ). Απόδειξη Για ένα συγκεκριμένο κλειδί k οι συναρτήσεις αναζήτησης και διαγραφής χρειάζονται χρόνο σταθερό συν τον χρόνο να διαβάσουν την λίστα T[h(k)]. Ο αναμενόμενος χρόνος είναι O(1 + E[X]) όπου X είναι η τυχαία μεταβλητή που υποδηλώνει το μέγεθος της λίστας T[h(k)]. Έστω S το σύνολο των n στοιχείων που είναι αποθηκευμένα. Για κάθε e S, έστω X e η τυχαία μεταβλητή (indicator) όπου X e = 1 εάν h(e) = h(k) και X e = 0 αλλιώς. Έχουμε X = e S X e. Χρησιμοποιώντας την γραμμικότητα της μέσης τιμής πέρνουμε E[X] = E[ X e ] = e S e S E[X e ] = e Sprob(X e = 1). Μια τυχαία συνάρτηση αντιστοιχεί ένα στοιχείο e σε όλες τις m θέσεις με ίδια πιθανότητα 1/m και άρα E[X] = n/m. Χαροκόπειο Πανεπιστήμιο 15/33

27 Τυχαία Συνάρτηση Κατακερματισμού Δυστυχώς η υπόθεση της τυχαίας συνάρτησης κατακερματισμού είναι τελείως αβάσιμη. Έστω H όλες οι συναρτήσεις από το U στο 0... m 1. Υπάρχουν m U συναρτήσεις στο σύνολο H. Για να διαλέξουμε μια συνάρτηση από το H χρειαζόμαστε log 2 m U = U log 2 m bits. Έτσι καταργούμε τον στόχο μας να μειώσουμε τον χώρο από U σε n. Χαροκόπειο Πανεπιστήμιο 16/33

28 Καθολικός Κατακερματισμός Στόχοι θέλουμε να διαλέγουμε τυχαία μία συνάρτηση από ένα μικρότερο σύνολο από συναρτήσεις, η επιλογή μιας συνάρτησης πρέπει να μπορεί να γίνει με σταθερό χώρο, πρέπει οι συναρτήσεις να υπολογίζονται εύκολα. Χαροκόπειο Πανεπιστήμιο 17/33

29 Καθολικός Κατακερματισμός Ορισμός Έστω c μια θετική σταθερά. Μια οικογένεια συναρτήσεων από το U στο 0... m 1 λέγεται c-καθολική (c-universal) εάν δυο διαφορετικά κλειδιά συγκρούονται με πιθανότητα το πολύ c m. Χαροκόπειο Πανεπιστήμιο 18/33

30 Καθολικός Κατακερματισμός Ορισμός Έστω c μια θετική σταθερά. Μια οικογένεια συναρτήσεων από το U στο 0... m 1 λέγεται c-καθολική (c-universal) εάν δυο διαφορετικά κλειδιά συγκρούονται με πιθανότητα το πολύ c m. Για κάθε x, y U με x y έχουμε: h H : h(x) = h(y) c m H. Χαροκόπειο Πανεπιστήμιο 18/33

31 Καθολικός Κατακερματισμός Ορισμός Έστω c μια θετική σταθερά. Μια οικογένεια συναρτήσεων από το U στο 0... m 1 λέγεται c-καθολική (c-universal) εάν δυο διαφορετικά κλειδιά συγκρούονται με πιθανότητα το πολύ c m. Για κάθε x, y U με x y έχουμε: Με άλλα λόγια, για τυχαία h H, h H : h(x) = h(y) c m H. prob(h(x) = h(y)) c m Χαροκόπειο Πανεπιστήμιο 18/33

32 Καθολικός Κατακερματισμός Ορισμός Έστω c μια θετική σταθερά. Μια οικογένεια συναρτήσεων από το U στο 0... m 1 λέγεται c-καθολική (c-universal) εάν δυο διαφορετικά κλειδιά συγκρούονται με πιθανότητα το πολύ c m. Για κάθε x, y U με x y έχουμε: Με άλλα λόγια, για τυχαία h H, h H : h(x) = h(y) c m H. prob(h(x) = h(y)) c m Μία c-καθολική συνάρτηση λειτουργεί μια χαρά στην απόδειξη που κάναμε με τις τυχαίες συναρτήσεις. Χαροκόπειο Πανεπιστήμιο 18/33

33 Καθολική Συνάρτηση Κατακερματισμού Ερώτηση Μπορούμε να κατασκευάσουμε μία c-καθολική οικογένεια συναρτήσεων; Χαροκόπειο Πανεπιστήμιο 19/33

34 Καθολική Συνάρτηση Κατακερματισμού Ερώτηση Μπορούμε να κατασκευάσουμε μία c-καθολική οικογένεια συναρτήσεων; Η απάντηση είναι ΝΑΙ! Χαροκόπειο Πανεπιστήμιο 19/33

35 1-Καθολική Οικογένεια Συναρτήσεων Η μέθοδος του πίνακα (matrix method) Έστω: Τα κλειδιά έχουν μήκος u bits. Ο πίνακας T έχει μέγεθος 2 b όπου b είναι ο αριθμός των bits για την διευθυνσιοδότηση του. Χαροκόπειο Πανεπιστήμιο 20/33

36 1-Καθολική Οικογένεια Συναρτήσεων Η μέθοδος του πίνακα (matrix method) Έστω: Τα κλειδιά έχουν μήκος u bits. Ο πίνακας T έχει μέγεθος 2 b όπου b είναι ο αριθμός των bits για την διευθυνσιοδότηση του. Τότε: Επιλέγουμε έναν τυχαίο 0/1 πίνακα h διαστάσεων b u Ορίζουμε h(x) = h x όπου κάνουμε πρόσθεση με υπόλοιπο 2 (mod 2). Χαροκόπειο Πανεπιστήμιο 20/33

37 1-Καθολική Οικογένεια Συναρτήσεων Η μέθοδος του πίνακα (matrix method) - Παράδειγμα h(x) = h x = = Τα κλειδιά μας έχουν μήκος u = 8 bits (π.χ 256 χαρακτήρες του πίνακα ASCII) Ο πίνακας T έχει μέγεθος 2 4 = 16 και άρα χρειαζόμαστε b = 4 bits για την διευθυνσιοδότηση του. Επιλέγουμε έναν τυχαίο 0/1 πίνακα h διαστάσεων 4 8 Ορίζουμε h(x) = h x όπου κάνουμε πρόσθεση με υπόλοιπο 2 (mod 2) Χαροκόπειο Πανεπιστήμιο 21/33

38 1-Καθολική Οικογένεια Συναρτήσεων Η μέθοδος του πίνακα (matrix method) Θεώρημα Για x y, Pr h [h(x) = h(y)] = 1 2 b. Απόδειξη Καταρχήν, τι σημαίνει ο πολλαπλασιασμός h επί x; Μπορούμε να σκεφτούμε πως προσθέτουμε κάποιες στήλες του h (πρόσθεση mod 2) και τα 1 του x μας λένε ποιες στήλες να προσθέσουμε. Χαροκόπειο Πανεπιστήμιο 22/33

39 1-Καθολική Οικογένεια Συναρτήσεων Η μέθοδος του πίνακα (matrix method) Θεώρημα Για x y, Pr h [h(x) = h(y)] = 1 2 b. Απόδειξη Καταρχήν, τι σημαίνει ο πολλαπλασιασμός h επί x; Μπορούμε να σκεφτούμε πως προσθέτουμε κάποιες στήλες του h (πρόσθεση mod 2) και τα 1 του x μας λένε ποιες στήλες να προσθέσουμε. Έστω οποιοδήποτε ζευγάρι κλειδιών x, y ώστε x y. Πρέπει να διαφέρουν κάπου, ας υποθέσουμε λοιπόν πως x i = 0 και y i = 1 για κάποια θέση i. Χαροκόπειο Πανεπιστήμιο 22/33

40 1-Καθολική Οικογένεια Συναρτήσεων Η μέθοδος του πίνακα (matrix method) Θεώρημα Για x y, Pr h [h(x) = h(y)] = 1 2 b. Απόδειξη Καταρχήν, τι σημαίνει ο πολλαπλασιασμός h επί x; Μπορούμε να σκεφτούμε πως προσθέτουμε κάποιες στήλες του h (πρόσθεση mod 2) και τα 1 του x μας λένε ποιες στήλες να προσθέσουμε. Έστω οποιοδήποτε ζευγάρι κλειδιών x, y ώστε x y. Πρέπει να διαφέρουν κάπου, ας υποθέσουμε λοιπόν πως x i = 0 και y i = 1 για κάποια θέση i. Φανταστείτε πως διαλέγουμε πρώτα όλο τον πίνακα h εκτός από την i στήλη. Σε σχέση με τις αναπομείναντες επιλογές η h(x) είναι σταθερή μιας και ισχύει x i = 0. Χαροκόπειο Πανεπιστήμιο 22/33

41 1-Καθολική Οικογένεια Συναρτήσεων Η μέθοδος του πίνακα (matrix method) Θεώρημα Για x y, Pr h [h(x) = h(y)] = 1 2 b. Απόδειξη Καταρχήν, τι σημαίνει ο πολλαπλασιασμός h επί x; Μπορούμε να σκεφτούμε πως προσθέτουμε κάποιες στήλες του h (πρόσθεση mod 2) και τα 1 του x μας λένε ποιες στήλες να προσθέσουμε. Έστω οποιοδήποτε ζευγάρι κλειδιών x, y ώστε x y. Πρέπει να διαφέρουν κάπου, ας υποθέσουμε λοιπόν πως x i = 0 και y i = 1 για κάποια θέση i. Φανταστείτε πως διαλέγουμε πρώτα όλο τον πίνακα h εκτός από την i στήλη. Σε σχέση με τις αναπομείναντες επιλογές η h(x) είναι σταθερή μιας και ισχύει x i = 0. Τώρα, κάθε μία από τις 2 b διαφορετικές επιλογές για την i στήλη, δίνει διαφορετική τιμή στην h(y) (κάθε φορά που αλλάζει ένα bit στην στήλη, αλλάζει και το αντίστοιχο bit στην h(y)). Χαροκόπειο Πανεπιστήμιο 22/33

42 1-Καθολική Οικογένεια Συναρτήσεων Η μέθοδος του πίνακα (matrix method) Θεώρημα Για x y, Pr h [h(x) = h(y)] = 1 2 b. Απόδειξη Καταρχήν, τι σημαίνει ο πολλαπλασιασμός h επί x; Μπορούμε να σκεφτούμε πως προσθέτουμε κάποιες στήλες του h (πρόσθεση mod 2) και τα 1 του x μας λένε ποιες στήλες να προσθέσουμε. Έστω οποιοδήποτε ζευγάρι κλειδιών x, y ώστε x y. Πρέπει να διαφέρουν κάπου, ας υποθέσουμε λοιπόν πως x i = 0 και y i = 1 για κάποια θέση i. Φανταστείτε πως διαλέγουμε πρώτα όλο τον πίνακα h εκτός από την i στήλη. Σε σχέση με τις αναπομείναντες επιλογές η h(x) είναι σταθερή μιας και ισχύει x i = 0. Τώρα, κάθε μία από τις 2 b διαφορετικές επιλογές για την i στήλη, δίνει διαφορετική τιμή στην h(y) (κάθε φορά που αλλάζει ένα bit στην στήλη, αλλάζει και το αντίστοιχο bit στην h(y)). Άρα υπάρχει ακριβώς 1 2b πιθανότητα να ισχύει h(x) = h(y). Χαροκόπειο Πανεπιστήμιο 22/33

43 Μέγεθος Πίνακα Αλυσιδωτός Κατακερματισμός μέσος χρόνος αναζήτησης/διαγραφής: O(1 + n/m) υποθέτοντας καθολική συνάρτηση κατακερματισμού Μέγεθος Πίνακα; θέλουμε πάντα m = O(n) και άρα μέσο χρόνο αναζήτησης/διαγραφής O(1) δεν ξέρουμε το n κατά την δημιουργία του πίνακα πολύ μικρό m αργή αναζήτηση/διαγραφή πολύ μεγάλο m χάσιμο χώρου Χαροκόπειο Πανεπιστήμιο 23/33

44 Επανακατακερματισμός Rehashing Ιδέα αρχικά μικρό m (σταθερά) αύξηση (& μείωση) ανάλογα με την χρήση Επανακατακερματισμός (rehashing) Για να μεγαλώσει ή να μικρύνει ο πίνακας κατακερματισμού πρέπει να αλλάξει η συνάρτηση κατακερματισμού. επιλέγουμε νέα συνάρτηση κατακερματισμού από το σύνολο H ο πίνακας πρέπει να φτιαχτεί από την αρχή κάθε αντικείμενο του παλιού πίνακα κατακερματισμού προστίθεται στον καινούριο πίνακα Χαροκόπειο Πανεπιστήμιο 24/33

45 Επανακατακερματισμός Rehashing Έχοντας μια καθολική συνάρτηση κατακερματισμού μπορούμε να έχουμε γραμμικό χώρο και σταθερό αναμενόμενο χρόνο όλων των λειτουργιών του πίνακα κατακερματισμού 1 φροντίζουμε πάντα m = Θ(n) 2 εαν το n γίνει > m τότε διπλασιάζουμε το μέγεθος του πίνακα 3 εαν το n γίνει < 1 m υποδιπλασιάζουμε το μέγεθος του πίνακα 4 Κάθε φορά που αλλάζουμε το μέγεθος του πίνακα, διαλέγουμε μια καινούρια συνάρτηση κατακερματισμού και υπολογίζουμε τις θέσεις όλων των στοιχείων με βάση τη νέα συνάρτηση. Χαροκόπειο Πανεπιστήμιο 25/33

46 Επανακατακερματισμός Rehashing Έχοντας μια καθολική συνάρτηση κατακερματισμού μπορούμε να έχουμε γραμμικό χώρο και σταθερό αναμενόμενο χρόνο όλων των λειτουργιών του πίνακα κατακερματισμού 1 φροντίζουμε πάντα m = Θ(n) 2 εαν το n γίνει > m τότε διπλασιάζουμε το μέγεθος του πίνακα 3 εαν το n γίνει < 1 m υποδιπλασιάζουμε το μέγεθος του πίνακα 4 Μερικές λειτουργίες κοστίζουν γραμμικό χρόνο αλλά ο μέσος όρος είναι O(1) Χαροκόπειο Πανεπιστήμιο 25/33

47 Ανοιχτή Διευθυνσιοδότηση Open Addressing 1 όλα τα στοιχεία είναι απευθείας στον πίνακα, όχι σύνδεσμοι 2 υποχρεωτικά n < m 3 βασική ιδέα: εάν μία θέση είναι γεμάτη, αναζήτησε άλλη Επίλυση Σύγκρουσης Σε περίπτωση που η θέση T[h(key)] έχει ήδη κάποιο στοιχείο αναζητάμε κάποια ελεύθερη θέση με βάση κάποια συγκεκριμένη στρατηγική. Χαροκόπειο Πανεπιστήμιο 26/33

48 Γραμμική Διερεύνηση Linear Probing Η απλούστερη μέθοδος ανοιχτής διευθυνσιοδότησης ονομάζεται γραμμική διερεύνηση. Ο πίνακας κατακερματισμού αποθηκεύει όλα τα στοιχεία. Κενές θέσεις συμβολίζονται με κάποιο ειδικό σύμβολο, π.χ. Ένα στοιχείο e αποθηκεύεται στην θέση t[h(e)] ή στην πρώτη κενή προς τα δεξιά εάν το e είναι στην θέση t[i] με i > h(e) πρέπει υποχρεωτικά οι θέσεις h(e) μέχρι και i 1 να μην είναι κενές ( ). Χαροκόπειο Πανεπιστήμιο 27/33

49 Γραμμική Διερεύνηση Linear Probing Εισαγωγή του στοιχείου e: ψάχνουμε στον πίνακα ξεκινώντας από την θέση t[h(e)] προς τα δεξιά μέχρι να βρούμε ένα. Εκεί αποθηκεύουμε το στοιχείο e. Αναζήτηση του στοιχείου e: ψάχνουμε στον πίνακα ξεκινώντας από την θέση t[h(e)] προς τα δεξιά μέχρι να βρούμε το e ή ένα. Και στις δύο περιπτώσεις χρησιμοποιούμε τον πίνακα ως κυκλικό πίνακα, καθώς κινούμαστε προς τα δεξιά. Χαροκόπειο Πανεπιστήμιο 28/33

50 Γραμμική Διερεύνηση Διαγραφή Η διαγραφή ενός στοιχείου e είναι η μόνη δύσκολη διαδικασία: αφού βρούμε το e δεν μπορούμε απλά να το διαγράψουμε γράφοντας στην θέση του μπορεί να δημιουργήσουμε πρόβλημα σε άλλα στοιχεία π.χ έστω τα στοιχεία x, y, z τα οποία προστίθενται με αυτή την σειρά και έστω h(x) = h(z) και h(y) = h(x) + 1. Το z αποθηκεύεται στην θέση h(x) + 2. Όταν θέλουμε να σβήσουμε το y δεν μπορούμε απλά να γράψουμε στην θέση h(x) + 1 το μιας και θα κάνει το στοιχείο z μη προσβάσιμο. Χαροκόπειο Πανεπιστήμιο 29/33

51 Γραμμική Διερεύνηση Διαγραφή Υπάρχουν 3 λύσεις: 1 να μην επιτρέπουμε διαγραφές 2 μπορούμε να σημαδέψουμε το στοιχείο e αλλά να μην το αφαιρέσουμε. Οι αναζητήσεις μπορούν να σταματάνε σε αλλά όχι σε σημαδεμένο στοιχείο. 3 να διορθώσουμε την κατάσταση Η δεύτερη περίπτωση παρουσιάζει το πρόβλημα πως ο πίνακας γεμίζει και τελικά γίνονται αργές οι αναζητήσεις. Χαροκόπειο Πανεπιστήμιο 30/33

52 Γραμμική Διερεύνηση Διαγραφή Έστω πως θέλουμε να διαγράψουμε το στοιχείο στην θέση i. γράφουμε στην θέση του το αφήνοντας ένα κενό στην συνέχεια ψάχνουμε στα δεξιά για να δούμε εαν χαλάσαμε τίποτα, θέτουμε j = i + 1 εάν t[j] = είμαστε καλά και τερματίζουμε αλλιώς έστω f το στοιχείο που είναι αποθηκευμένο στο t[j] εάν h(f) > i δεν μπορούμε να κάνουμε τίποτα και αυξάνουμε τον δείκτη j εάν h(f) i αφήνοντας το κενό θα δημιουργούσε πρόβλημα, και θα χανόταν το f. Για να λύσουμε το πρόβλημα αντιμεταθέτουμε τα t[i] και t[j], δηλαδή αντιμεταθέτουμε τα f και. Θέτουμε την θέση του κενού i στην νέα θέση j και συνεχίζουμε με j = j + 1. Χαροκόπειο Πανεπιστήμιο 31/33

53 Παράδειγμα Γραμμική Διερεύνηση Έστω ένας πίνακας κατακερματισμού με μέγεθος m = 7 συνάρτηση κατακερματισμού h(k) = k mod 7. όπου θέλουμε να εισάγουμε τα στοιχεία 9, 10, 12, 16, 17, Χαροκόπειο Πανεπιστήμιο 32/33

54 Παράδειγμα Γραμμική Διερεύνηση Έστω ένας πίνακας κατακερματισμού με μέγεθος m = 7 συνάρτηση κατακερματισμού h(k) = k mod 7. όπου θέλουμε να εισάγουμε τα στοιχεία 9, 10, 12, 16, 17, Χαροκόπειο Πανεπιστήμιο 32/33

55 Παράδειγμα Γραμμική Διερεύνηση Έστω ένας πίνακας κατακερματισμού με μέγεθος m = 7 συνάρτηση κατακερματισμού h(k) = k mod 7. όπου θέλουμε να εισάγουμε τα στοιχεία 9, 10, 12, 16, 17, Χαροκόπειο Πανεπιστήμιο 32/33

56 Παράδειγμα Γραμμική Διερεύνηση Έστω ένας πίνακας κατακερματισμού με μέγεθος m = 7 συνάρτηση κατακερματισμού h(k) = k mod 7. όπου θέλουμε να εισάγουμε τα στοιχεία 9, 10, 12, 16, 17, Χαροκόπειο Πανεπιστήμιο 32/33

57 Παράδειγμα Γραμμική Διερεύνηση Έστω ένας πίνακας κατακερματισμού με μέγεθος m = 7 συνάρτηση κατακερματισμού h(k) = k mod 7. όπου θέλουμε να εισάγουμε τα στοιχεία 9, 10, 12, 16, 17, Χαροκόπειο Πανεπιστήμιο 32/33

58 Παράδειγμα Γραμμική Διερεύνηση Έστω ένας πίνακας κατακερματισμού με μέγεθος m = 7 συνάρτηση κατακερματισμού h(k) = k mod 7. όπου θέλουμε να εισάγουμε τα στοιχεία 9, 10, 12, 16, 17, Χαροκόπειο Πανεπιστήμιο 32/33

59 Παράδειγμα Γραμμική Διερεύνηση Έστω ένας πίνακας κατακερματισμού με μέγεθος m = 7 συνάρτηση κατακερματισμού h(k) = k mod 7. όπου θέλουμε να εισάγουμε τα στοιχεία 9, 10, 12, 16, 17, Χαροκόπειο Πανεπιστήμιο 32/33

60 Παράδειγμα Γραμμική Διερεύνηση Έστω ένας πίνακας κατακερματισμού με μέγεθος m = 7 συνάρτηση κατακερματισμού h(k) = k mod 7. όπου θέλουμε να εισάγουμε τα στοιχεία 9, 10, 12, 16, 17, Χαροκόπειο Πανεπιστήμιο 32/33

61 Παράδειγμα Γραμμική Διερεύνηση Έστω ένας πίνακας κατακερματισμού με μέγεθος m = 7 συνάρτηση κατακερματισμού h(k) = k mod 7. όπου θέλουμε να εισάγουμε τα στοιχεία 9, 10, 12, 16, 17, Χαροκόπειο Πανεπιστήμιο 32/33

62 Παράδειγμα Γραμμική Διερεύνηση Έστω ένας πίνακας κατακερματισμού με μέγεθος m = 7 συνάρτηση κατακερματισμού h(k) = k mod 7. όπου θέλουμε να εισάγουμε τα στοιχεία 9, 10, 12, 16, 17, Χαροκόπειο Πανεπιστήμιο 32/33

63 Παράδειγμα Γραμμική Διερεύνηση Έστω ένας πίνακας κατακερματισμού με μέγεθος m = 7 συνάρτηση κατακερματισμού h(k) = k mod 7. όπου θέλουμε να εισάγουμε τα στοιχεία 9, 10, 12, 16, 17, Χαροκόπειο Πανεπιστήμιο 32/33

64 Παράδειγμα Γραμμική Διερεύνηση Έστω ένας πίνακας κατακερματισμού με μέγεθος m = 7 συνάρτηση κατακερματισμού h(k) = k mod 7. όπου θέλουμε να εισάγουμε τα στοιχεία 9, 10, 12, 16, 17, Χαροκόπειο Πανεπιστήμιο 32/33

65 Παράδειγμα Γραμμική Διερεύνηση Έστω ένας πίνακας κατακερματισμού με μέγεθος m = 7 συνάρτηση κατακερματισμού h(k) = k mod 7. όπου θέλουμε να εισάγουμε τα στοιχεία 9, 10, 12, 16, 17, Χαροκόπειο Πανεπιστήμιο 32/33

66 Άλλες Στρατηγικές Στην γενική μορφή η συνάρτηση κατακερματισμού είναι: h(key, i) = (h1(key) + F(i)) mod size. όπου F είναι μία συνάρτηση επίλυσης συγκρούσεων. Linear Probing F(i) = i Quadratic Probing F(i) = i 2 Double Hashing F(i) = i h2(key) Χαροκόπειο Πανεπιστήμιο 33/33

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

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

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

Διάλεξη 23: Τεχνικές Κατακερματισμού II (Hashing)

Διάλεξη 23: Τεχνικές Κατακερματισμού II (Hashing) ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 1 Διάλεξη 23: Τεχνικές Κατακερματισμού II (Hashing) Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Διαχείριση Συγκρούσεων με Ανοικτή Διεύθυνση a) Linear

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

Ο ΑΤΔ Λεξικό. Σύνολο στοιχείων με βασικές πράξεις: Δημιουργία Εισαγωγή Διαγραφή Μέλος. Υλοποιήσεις

Ο ΑΤΔ Λεξικό. Σύνολο στοιχείων με βασικές πράξεις: Δημιουργία Εισαγωγή Διαγραφή Μέλος. Υλοποιήσεις Ο ΑΤΔ Λεξικό Σύνολο στοιχείων με βασικές πράξεις: Δημιουργία Εισαγωγή Διαγραφή Μέλος Υλοποιήσεις Πίνακας με στοιχεία bit (0 ή 1) (bit vector) Λίστα ακολουθιακή (πίνακας) ή συνδεδεμένη Είναι γνωστό το μέγιστο

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

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

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ Διάλεξη 25: Τεχνικές Κατακερματισμού II Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Διαχείριση Συγκρούσεων με Ανοικτή Διεύθυνση a) Linear Probing, b) Quadratic Probing c) Double Hashing Διατεταγμένος

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

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

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

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

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δομές Δεδομένων. Ιωάννης Γ. Τόλλης Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δομές Δεδομένων. Ιωάννης Γ. Τόλλης Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Δομές Δεδομένων Ιωάννης Γ. Τόλλης Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού

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

Διάλεξη 22: Τεχνικές Κατακερματισμού I (Hashing)

Διάλεξη 22: Τεχνικές Κατακερματισμού I (Hashing) Διάλεξη 22: Τεχνικές Κατακερματισμού I (Hashing) Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Ανασκόπηση Προβλήματος και Προκαταρκτικών Λύσεων Bit Διανύσματα Τεχνικές Κατακερματισμού & Συναρτήσεις

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

10. Πίνακες Κατακερματισμού

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

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

Advanced Data Indexing

Advanced Data Indexing Advanced Data Indexing (Προηγμένη ευρετηρίαση δεδομένων) Κατακερματισμός Hashing (1ο Μέρος) Η Αναζήτηση απαιτεί Δομές Λύσεις Για να υποστηριχθεί η αποδοτική αναζήτηση απαιτείται η χρήση κατάλληλων δομών-ευρετηρίων

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

Πίνακες (Μια παλιά άσκηση) Πίνακες Κατακερματισμού (Hash Tables) Πίνακες (Μια παλιά άσκηση) Εισαγωγή. A n

Πίνακες (Μια παλιά άσκηση) Πίνακες Κατακερματισμού (Hash Tables) Πίνακες (Μια παλιά άσκηση) Εισαγωγή. A n Πίνακες (Μια παλιά άσκηση) Πίνακες Κατακερματισμού (Hash Tables) Ορέστης Τελέλης telelis@unipi.gr Τμήμα Ψηφιακών Συστημάτων, Πανεπιστήμιο Πειραιώς A n O(1) (στην πρώτη ελέυθερη θέση στο τέλος του πίνακα).

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

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

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

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

Advanced Data Indexing

Advanced Data Indexing Advanced Data Indexing (Προηγμένη ευρετηρίαση δεδομένων) Κατακερματισμός - Hashing (2 ο Μέρος) Μέθοδοι Κατακερματισμού integer universe Direct Addressing Hashing with chaining Hashing by Division Hashing

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

Πίνακες Διασποράς. Χρησιμοποιούμε ένα πίνακα διασποράς T και μια συνάρτηση διασποράς h. Ένα στοιχείο με κλειδί k αποθηκεύεται στη θέση

Πίνακες Διασποράς. Χρησιμοποιούμε ένα πίνακα διασποράς T και μια συνάρτηση διασποράς h. Ένα στοιχείο με κλειδί k αποθηκεύεται στη θέση Πίνακες Διασποράς Χρησιμοποιούμε ένα πίνακα διασποράς T και μια συνάρτηση διασποράς h Ένα στοιχείο με κλειδί k αποθηκεύεται στη θέση κλειδί k T 0 1 2 3 4 5 6 7 U : χώρος πιθανών κλειδιών Τ : πίνακας μεγέθους

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

Πίνακες Συμβόλων. εισαγωγή αναζήτηση επιλογή. εισαγωγή. αναζήτηση

Πίνακες Συμβόλων. εισαγωγή αναζήτηση επιλογή. εισαγωγή. αναζήτηση Πίνακες Συμβόλων χειρότερη περίπτωση μέση περίπτωση εισαγωγή αναζήτηση επιλογή εισαγωγή αναζήτηση διατεταγμένος πίνακας διατεταγμένη λίστα μη διατεταγμένος πίνακας μη διατεταγμένη λίστα δένδρο αναζήτησης

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

Διάλεξη 23: Τεχνικές Κατακερματισμού II (Hashing)

Διάλεξη 23: Τεχνικές Κατακερματισμού II (Hashing) Διάλεξη 23: Τεχνικές Κατακερματισμού II (Hashing) Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Διαχείριση Συγκρούσεων με Ανοικτή Διεύθυνση a) Linear Probing, b) Quadratic Probing c) Double

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΙI

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΙI ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΙI Δομές Ευρετηρίων και Κατακερματισμός Αρχείων II Β. Μεγαλοοικονόμου Δ. Χριστοδουλάκης (παρουσίαση βασισμένη εν μέρη σε σημειώσεις των Silberchatz, Korth και

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

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

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

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

Δομές Δεδομένων. Κατακερματισμός. Δομές Δεδομένων & Αλγόριθμοι. Εργαστήριο Γνώσης και Ευφυούς Πληροφορικής 1

Δομές Δεδομένων. Κατακερματισμός. Δομές Δεδομένων & Αλγόριθμοι. Εργαστήριο Γνώσης και Ευφυούς Πληροφορικής 1 Δομές Δεδομένων Κατακερματισμός Πληροφορικής 1 Πρόβλημα Insert, Search και DELETE εγγραφής Σε σταθερό χρόνο Σε πίνακα εγγραφών όπου το πεδίο τιμών στα κλειδιά >> Μέγεθος Πίνακα (M) το πλήθος των εγγραφών

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

Δοµές Δεδοµένων. 16η Διάλεξη Κατακερµατισµός. Ε. Μαρκάκης

Δοµές Δεδοµένων. 16η Διάλεξη Κατακερµατισµός. Ε. Μαρκάκης Δοµές Δεδοµένων 16η Διάλεξη Κατακερµατισµός Ε. Μαρκάκης Περίληψη Συναρτήσεις κατακερµατισµού Χωριστή αλυσίδωση Γραµµική διερεύνηση Διπλός κατακερµατισµός Δυναµικός κατακερµατισµός Προοπτική Δοµές Δεδοµένων

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

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

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

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

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

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

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

Δομές Αναζήτησης. εισαγωγή αναζήτηση επιλογή. εισαγωγή. αναζήτηση

Δομές Αναζήτησης. εισαγωγή αναζήτηση επιλογή. εισαγωγή. αναζήτηση Δομές Αναζήτησης χειρότερη περίπτωση μέση περίπτωση εισαγωγή αναζήτηση επιλογή εισαγωγή αναζήτηση διατεταγμένος πίνακας διατεταγμένη λίστα μη διατεταγμένος πίνακας μη διατεταγμένη λίστα δένδρο αναζήτησης

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

Δυναμικά Σύνολα. Δυναμικό σύνολο. Tα στοιχεία του μεταβάλλονται μέσω εντολών εισαγωγής και διαγραφής. διαγραφή. εισαγωγή

Δυναμικά Σύνολα. Δυναμικό σύνολο. Tα στοιχεία του μεταβάλλονται μέσω εντολών εισαγωγής και διαγραφής. διαγραφή. εισαγωγή Δυναμικά Σύνολα Δυναμικό σύνολο Tα στοιχεία του μεταβάλλονται μέσω εντολών εισαγωγής και διαγραφής διαγραφή εισαγωγή Δυναμικά Σύνολα Δυναμικό σύνολο Tα στοιχεία του μεταβάλλονται μέσω εντολών εισαγωγής

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

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

Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Τεχνικές Κατακερµατισµού Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Τεχνικές Κατακερµατισµού ιαχείριση Συγκρούσεων µε Αλυσίδωση ιαχείριση Συγκρούσεων µε Ανοικτή ιεύθυνση ιπλός Κατακερµατισµός,

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

Δυναμικά Σύνολα. Δυναμικό σύνολο. Tα στοιχεία του μεταβάλλονται μέσω εντολών εισαγωγής και διαγραφής. διαγραφή. εισαγωγή

Δυναμικά Σύνολα. Δυναμικό σύνολο. Tα στοιχεία του μεταβάλλονται μέσω εντολών εισαγωγής και διαγραφής. διαγραφή. εισαγωγή Δυναμικά Σύνολα Δυναμικό σύνολο Tα στοιχεία του μεταβάλλονται μέσω εντολών εισαγωγής και διαγραφής διαγραφή εισαγωγή Δυναμικά Σύνολα Δυναμικό σύνολο Tα στοιχεία του μεταβάλλονται μέσω εντολών εισαγωγής

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

Δυναμικά Σύνολα. Δυναμικό σύνολο. Tα στοιχεία του μεταβάλλονται μέσω εντολών εισαγωγής και διαγραφής. διαγραφή. εισαγωγή

Δυναμικά Σύνολα. Δυναμικό σύνολο. Tα στοιχεία του μεταβάλλονται μέσω εντολών εισαγωγής και διαγραφής. διαγραφή. εισαγωγή Δυναμικά Σύνολα Δυναμικό σύνολο Tα στοιχεία του μεταβάλλονται μέσω εντολών εισαγωγής και διαγραφής διαγραφή εισαγωγή Δυναμικά Σύνολα Δυναμικό σύνολο Tα στοιχεία του μεταβάλλονται μέσω εντολών εισαγωγής

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

Κατακερματισμός (Hashing)

Κατακερματισμός (Hashing) Κατακερματισμός (Hashing) O κατακερματισμός είναι μια τεχνική οργάνωσης ενός αρχείου. Είναι αρκετά δημοφιλής μέθοδος για την οργάνωση αρχείων Βάσεων Δεδομένων, καθώς βοηθάει σημαντικά στην γρήγορη αναζήτηση

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

Διάλεξη 18: Τεχνικές Κατακερματισμού I (Hashing)

Διάλεξη 18: Τεχνικές Κατακερματισμού I (Hashing) ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 1 Διάλεξη 18: Τεχνικές Κατακερματισμού I (Hashing) Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Ανασκόπηση Προβλήματος και Προκαταρκτικών Λύσεων Bit-Διανύσματα

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

Ενότητα 6: Κατακερματισμός Ασκήσεις και Λύσεις

Ενότητα 6: Κατακερματισμός Ασκήσεις και Λύσεις ΗΥ2, Ενότητα : Ασκήσεις και Λύσεις Ενότητα : Κατακερματισμός Ασκήσεις και Λύσεις Άσκηση 1 Χρησιμοποιήστε τη συνάρτηση κατακερματισμού της διαίρεσης ως πρωτεύουσα συνάρτηση κατακερματισμού και τη συνάρτηση

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

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

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

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

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

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

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

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

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

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

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

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

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

Συναρτήσεις Κατακερματισμού και Πίνακες Κατακερματισμού

Συναρτήσεις Κατακερματισμού και Πίνακες Κατακερματισμού Μια συνάρτηση κατακερματισμού (hash function) h απεικονίζει κλειδιά ενός δοσμένου τύπου σεακεραίουςενόςσταθερούδιαστήματος [0,N 1]όπουΝτομέγεθοςτουπίνακα. Πχ: Συναρτήσεις Κατακερματισμού και Πίνακες Κατακερματισμού

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

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

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

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

ΚΑΤΑΚΕΡΜΑΤΙΣΜΟΣ HASHING

ΚΑΤΑΚΕΡΜΑΤΙΣΜΟΣ HASHING ΚΑΤΑΚΕΡΜΑΤΙΣΜΟΣ HASHING ΣΑΛΤΟΓΙΑΝΝΗ ΑΘΑΝΑΣΙΑ saltogiann@ceid.upatras.gr ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΤΟ ΠΡOΒΛΗΜΑ ΤΟΥ ΚΑΤΑΚΕΡΜΑΤΙΣΜΟY Θέλουμε τα δεδομένα που διαθέτουμε να μπορούν να αποθηκευτούν σε κάποιο πίνακα ή

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

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

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

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

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

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

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

ΕΝΟΤΗΤΑ 8 KATAKEΡΜΑΤΙΣΜΟΣ (HASHING)

ΕΝΟΤΗΤΑ 8 KATAKEΡΜΑΤΙΣΜΟΣ (HASHING) ΕΝΟΤΗΤΑ 8 KATAKEΡΜΑΤΙΣΜΟΣ (HASHING) Κατακερµατισµός Στόχος Έχουµε ένα σύνολο από κλειδιά {Κ 0,, Κ n-1 } και θέλουµε να υλοποιήσουµε Insert() και LookUp() (ίσως και Delete()) απλά και γρήγορα στην πράξη.

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

Σύνοψη Προηγούμενου. Πίνακες (Arrays) Πίνακες (Arrays): Βασικές Λειτουργίες. Πίνακες (Arrays) Ορέστης Τελέλης

Σύνοψη Προηγούμενου. Πίνακες (Arrays) Πίνακες (Arrays): Βασικές Λειτουργίες. Πίνακες (Arrays) Ορέστης Τελέλης Σύνοψη Προηγούμενου Πίνακες (Arrays Ορέστης Τελέλης telelis@unipi.gr Τμήμα Ψηφιακών Συστημάτων, Πανεπιστήμιο Πειραιώς Διαδικαστικά θέματα. Aντικείμενο Μαθήματος. Aντικείμενα, Κλάσεις, Μέθοδοι, Μεταβλητές.

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

Cuckoo Hashing. Αλγόριθμοι και Πολυπλοκότητα. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο

Cuckoo Hashing. Αλγόριθμοι και Πολυπλοκότητα. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Cuckoo Hashing Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο β Πολυτεχνείο Πρόβλημα (ADT) Λεξικού υναμικά μεταβαλλόμενη συλλογή αντικειμένων που αναγνωρίζονται με «κλειδί» (π.χ.

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

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

Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 35: Τεχνικές Κατακερματισμού (Hashing) Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: -Ανασκόπηση Προβλήματος και Προκαταρκτικών Λύσεων Bit-Διανύσματα - Τεχνικές Κατακερματισμού & Συναρτήσεις

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

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

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

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

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

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

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

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

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

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

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

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

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

Έστω ένας πίνακας με όνομα Α δέκα θέσεων : 1 η 2 η 3 η 4 η 5 η 6 η 7 η 8 η 9 η 10 η

Έστω ένας πίνακας με όνομα Α δέκα θέσεων : 1 η 2 η 3 η 4 η 5 η 6 η 7 η 8 η 9 η 10 η Μονοδιάστατοι Πίνακες Τι είναι ο πίνακας γενικά : Πίνακας είναι μια Στατική Δομή Δεδομένων. Δηλαδή συνεχόμενες θέσεις μνήμης, όπου το πλήθος των θέσεων είναι συγκεκριμένο. Στις θέσεις αυτές καταχωρούμε

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

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

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

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

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

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

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

Βάσεις Δεδομένων ΙΙ Ενότητα 7

Βάσεις Δεδομένων ΙΙ Ενότητα 7 Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Βάσεις Δεδομένων ΙΙ Ενότητα 7: Δομές Ευρετηρίων Κατακερματισμός Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται

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

Προγραμματισμός ΙI (Θ)

Προγραμματισμός ΙI (Θ) Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κεντρικής Μακεδονίας - Σέρρες Τμήμα Μηχανικών Πληροφορικής Προγραμματισμός ΙI (Θ) Δρ. Δημήτρης Βαρσάμης Επίκουρος Καθηγητής Μάρτιος 2017 Δρ. Δημήτρης Βαρσάμης Μάρτιος 2017

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

Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων

Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων Άσκηση 1 α) Η δομή σταθμισμένης ένωσης με συμπίεση διαδρομής μπορεί να τροποποιηθεί πολύ εύκολα ώστε να υποστηρίζει τις

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

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Κατακερµατισµός Κεφάλαιο 14. Ε. Μαρκάκης Επίκουρος Καθηγητής

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Κατακερµατισµός Κεφάλαιο 14. Ε. Μαρκάκης Επίκουρος Καθηγητής ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Κατακερµατισµός Κεφάλαιο 14 Ε. Μαρκάκης Επίκουρος Καθηγητής Περίληψη Εισαγωγή στον κατακερµατισµό Συναρτήσεις κατακερµατισµού Χωριστή αλυσίδωση Γραµµική διερεύνηση Διπλός κατακερµατισµός

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

Δυναμικός Κατακερματισμός

Δυναμικός Κατακερματισμός Δυναμικός Κατακερματισμός Καλό για βάση δεδομένων που μεγαλώνει και συρρικνώνεται σε μέγεθος Επιτρέπει τη δυναμική τροποποίηση της συνάρτησης κατακερματισμού Επεκτάσιμος κατακερματισμός μια μορφή δυναμικού

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

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

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δομές δεδομένων. Ενότητα 6η: Κατακερματισμός Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών ΕΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Δομές δεδομένων Ενότητα 6η: Κατακερματισμός Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών Ενότητα 6 Κατακερματισμός ΗΥ240 - Παναγιώτα Φατούρου 2 Κατακερματισμός -

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

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

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

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

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

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

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

Δυναμική Διατήρηση Γραμμικής Διάταξης

Δυναμική Διατήρηση Γραμμικής Διάταξης Διατηρεί μια γραμμική διάταξη δυναμικά μεταβαλλόμενης συλλογής στοιχείων. Υποστηρίζει τις λειτουργίες: Εισαγωγή νέου στοιχείου y αμέσως μετά από το στοιχείο x. x y Διαγραφή στοιχείου y. y Έλεγχος της σειράς

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

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

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

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

I. ΑΛΓΟΡΙΘΜΟΣ II. ΠΡΑΞΕΙΣ - ΣΥΝΑΡΤΗΣΕΙΣ III. ΕΠΑΝΑΛΗΨΕΙΣ. 1. Τα πιο συνηθισμένα σενάρια παραβίασης αλγοριθμικών κριτηρίων είναι:

I. ΑΛΓΟΡΙΘΜΟΣ II. ΠΡΑΞΕΙΣ - ΣΥΝΑΡΤΗΣΕΙΣ III. ΕΠΑΝΑΛΗΨΕΙΣ. 1. Τα πιο συνηθισμένα σενάρια παραβίασης αλγοριθμικών κριτηρίων είναι: ΑΕσΠΠ 1 / 8 I. ΑΛΓΟΡΙΘΜΟΣ 1. Τα πιο συνηθισμένα σενάρια παραβίασης αλγοριθμικών κριτηρίων είναι: i. Είσοδος : χρήση μιας μεταβλητής που δεν έχει πάρει προηγουμένως τιμή. ii. Έξοδος : ο αλγόριθμος δεν εμφανίζει

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

Εισαγωγή στο Bison. Μεταγλωττιστές, Χειμερινό εξάμηνο

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

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

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

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

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

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

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 2. Πίνακες 45 23 28 95 71 19 30 2 ομές εδομένων 4 5 Χρήστος ουλκερίδης Τμήμα Ψηφιακών Συστημάτων 12/10/2017

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

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

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

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

Ενότητα 3: ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ

Ενότητα 3: ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ Ενότητα 3: ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ ΔΕΔΟΜΕΝΑ ΑΛΓΟΡΙΘΜΟΙ -ΠΛΗΡΟΦΟΡΙΑ: Δεδομένα: Αναπαράσταση της Πραγματικότητας Μπορούν να γίνουν αντιληπτά με μια από τις αισθήσεις μας Πληροφορία: Προκύπτει από

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

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

Διδάσκων: Κωνσταντίνος Κώστα Διάλεξη Ε7: Επανάληψη Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Hashing, Final Exam Διδάσκων: Κωνσταντίνος Κώστα ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. και Μηχ. Υπολ. Ε7-1

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

Κεφα λαιο 9 Κατακερματισμός

Κεφα λαιο 9 Κατακερματισμός Κεφα λαιο 9 Κατακερματισμός Περιεχόμενα 9.1 Εισαγωγή... 197 9.2 Συναρτήσεις Κατακερματισμού... 199 9.3 Επίλυση συγκρούσεων... 200 9.3.1 Ξεχωριστές αλυσίδες... 200 9.3.2 Μεταβλητές διευθύνσεις... 201 Ανάλυση

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

'Ασκηση 1: Στατικός Κατακερματισμός. Εισαγωγή. Ρουτίνες υλοποίησης κατακερματισμού. (Ημερομηνία Παράδοσης: Παρασκευή, 16/5/2008, 5μμ) HT_Init()

'Ασκηση 1: Στατικός Κατακερματισμός. Εισαγωγή. Ρουτίνες υλοποίησης κατακερματισμού. (Ημερομηνία Παράδοσης: Παρασκευή, 16/5/2008, 5μμ) HT_Init() Πληροφορική & Τηλεπικοινωνίες K18 Υλοποίηση Συστημάτων Βάσεων Δεδομένων Εαρινό Εξάμηνο 2008 Αν. Καθηγητής Δημήτρης Γουνόπουλος Καθηγητής Γιάννης Ιωαννίδης 'Ασκηση 1: Στατικός Κατακερματισμός (Ημερομηνία

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

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

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

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

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

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

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

Προηγμένη Ευρετηρίαση Δεδομένων (ΠΜΣ) Ενδεικτικές ερωτήσεις-θέματα για την εξέταση της θεωρίας

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Πατώντας την επιλογή αυτή, ανοίγει ένα παράθυρο που έχει την ίδια μορφή με αυτό που εμφανίζεται όταν δημιουργούμε μία μεταβλητή. Λίστες Τι είναι οι λίστες; Πολλές φορές στην καθημερινή μας ζωή, χωρίς να το συνειδητοποιούμε, χρησιμοποιούμε λίστες. Τέτοια παραδείγματα είναι η λίστα του super market η οποία είναι ένας κατάλογος αντικειμένων

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

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

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

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

Field Service Management ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ

Field Service Management ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ Field Service Management ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ 1 ΠΕΡΙΕΧΟΜΕΝΑ 1. ΑΝΑΛΥΣΗ ΜΕΝΟΥ ΕΦΑΡΜΟΓΗΣ... 4 2. ΕΠΕΞΗΓΗΣΗ ΚΕΝΤΡΙΚΟΥ ΜΕΝΟΥ ΚΑΡΤΕΛΑΣ... 5 3. ΔΗΜΙΟΥΡΓΙΑ ΠΕΛΑΤΗ... 6 4. ΑΝΑΖΗΤΗΣΗ ΠΕΛΑΤΗ... 6 5. ΕΠΕΞΕΡΓΑΣΙΑ/ΔΙΑΓΡΑΦΗ

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

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

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

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

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

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

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

53 Χρόνια ΦΡΟΝΤΙΣΤΗΡΙΑ ΜΕΣΗΣ ΕΚΠΑΙΔΕΥΣΗΣ Σ Α Β Β Α Ϊ Δ Η Μ Α Ν Ω Λ Α Ρ Α Κ Η

53 Χρόνια ΦΡΟΝΤΙΣΤΗΡΙΑ ΜΕΣΗΣ ΕΚΠΑΙΔΕΥΣΗΣ Σ Α Β Β Α Ϊ Δ Η Μ Α Ν Ω Λ Α Ρ Α Κ Η 53 Χρόνια ΦΡΟΝΤΙΣΤΗΡΙΑ ΜΕΣΗΣ ΕΚΠΑΙΔΕΥΣΗΣ Σ Α Β Β Α Ϊ Δ Η Μ Α Ν Ω Λ Α Ρ Α Κ Η ΠΑΓΚΡΑΤΙ: Φιλολάου & Εκφαντίδου 26 : 210/76.01.470 210/76.00.179 ΘΕΜΑ Α Α1. Να γράψετε στο τετράδιό σας τον αριθμό καθεμιάς

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

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

Δομές Δεδομένων & Αλγόριθμοι - Πίνακες 1 Πίνακες Οι πίνακες έχουν σταθερό μέγεθος και τύπο δεδομένων. Βασικά πλεονεκτήματά τους είναι η απλότητα προγραμματισμού τους και η ταχύτητα. Ωστόσο δεν παρέχουν την ευελιξία η οποία απαιτείται

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

Δομημένος Προγραμματισμός (ΤΛ1006)

Δομημένος Προγραμματισμός (ΤΛ1006) Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κρήτης Σχολή Εφαρμοσμένων Επιστημών Τμήμα Ηλεκτρονικών Μηχανικών Τομέας Αυτοματισμού και Πληροφορικής Δομημένος Προγραμματισμός (ΤΛ1006) Δρ. Μηχ. Νικόλαος Πετράκης, Καθηγητής

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

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

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 2. Πίνακες 45 23 28 95 71 19 30 2 ομές εδομένων 4 5 Χρήστος ουλκερίδης Τμήμα Ψηφιακών Συστημάτων 21/10/2016

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

επιστρέφει το αμέσως μεγαλύτερο από το x στοιχείο του S επιστρέφει το αμέσως μικρότερο από το x στοιχείο του S

επιστρέφει το αμέσως μεγαλύτερο από το x στοιχείο του S επιστρέφει το αμέσως μικρότερο από το x στοιχείο του S Μελετάμε την περίπτωση όπου αποθηκεύουμε ένα (δυναμικό) σύνολο στοιχειών,, τα οποίo είναι υποσύνολο του. Υποστηριζόμενες λειτουργίες αναζήτηση(s,x): εισαγωγή(s,x): διαγραφή(s,x): διάδοχος(s,x): προκάτοχος(s,x):

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

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

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

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

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

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

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

Μέθοδοι μονοδιάστατης ελαχιστοποίησης

Μέθοδοι μονοδιάστατης ελαχιστοποίησης Βασικές αρχές μεθόδων ελαχιστοποίησης Μέθοδοι μονοδιάστατης ελαχιστοποίησης Οι μέθοδοι ελαχιστοποίησης είναι επαναληπτικές. Ξεκινώντας από μια αρχική προσέγγιση του ελαχίστου (την συμβολίζουμε ) παράγουν

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

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

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

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

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

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

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

ΚΕΦΑΛΑΙΟ 10 ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ

ΚΕΦΑΛΑΙΟ 10 ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ ΚΕΦΑΛΑΙΟ 10 Όπως είδαμε και σε προηγούμενο κεφάλαιο μια από τις βασικότερες τεχνικές στον Δομημένο Προγραμματισμό είναι ο Τμηματικός Προγραμματισμός. Τμηματικός προγραμματισμός ονομάζεται η τεχνική σχεδίασης

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

1η Σειρά Γραπτών Ασκήσεων

1η Σειρά Γραπτών Ασκήσεων 1/20 Ασυμπτωτικός Συμβολισμός, Αναδρομικές Σχέσεις 1η Σειρά Γραπτών Ασκήσεων Αλγόριθμοι και Πολυπλοκότητα ΣΗΜΜΥ, Εθνικό Μετσόβιο Πολυτεχνείο 1 Ασυμπτωτικός Συμβολισμός, Αναδρομικές Σχέσεις 2 3 4 5 2/20

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

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

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

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

2 ΟΥ και 8 ΟΥ ΚΕΦΑΛΑΙΟΥ

2 ΟΥ και 8 ΟΥ ΚΕΦΑΛΑΙΟΥ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 2 ΟΥ και 8 ΟΥ ΚΕΦΑΛΑΙΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΔΟΜΗ ΕΠΑΝΑΛΗΨΗΣ 1) Πότε χρησιμοποιείται η δομή επανάληψης

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

HY240 : Δομές Δεδομένων. Φροντιστήριο Προγραμματιστικής Εργασίας 2 ο και 3 ο Μέρος

HY240 : Δομές Δεδομένων. Φροντιστήριο Προγραμματιστικής Εργασίας 2 ο και 3 ο Μέρος HY240 : Δομές Δεδομένων Φροντιστήριο Προγραμματιστικής Εργασίας 2 ο και 3 ο Μέρος Εισαγωγή Στο 2 ο μέρος της εργασίας θα πρέπει να γίνουν τροποποιήσεις στο πρόγραμμα που προέκυψε κατά την υλοποίηση του

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

Τυπικές χρήσεις της Matlab

Τυπικές χρήσεις της Matlab Matlab Μάθημα 1 Τι είναι η Matlab Ολοκληρωμένο Περιβάλλον Περιβάλλον ανάπτυξης Διερμηνευμένη γλώσσα Υψηλή επίδοση Ευρύτητα εφαρμογών Ευκολία διατύπωσης Cross platform (Wintel, Unix, Mac) Τυπικές χρήσεις

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

Σημειωματάριο Δευτέρας 4 Δεκ. 2017

Σημειωματάριο Δευτέρας 4 Δεκ. 2017 Σημειωματάριο Δευτέρας 4 Δεκ. 2017 Ο αλγόριθμος Floyd-Warshall για την έυρεση όλων των αποστάσεων σε ένα γράφημα με βάρη στις ακμές Συνεχίσαμε σήμερα το θέμα της προηγούμενης Τετάρτης. Έχουμε ένα γράφημα

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

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

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

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

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

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

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

Standard Template Library (STL) C++ library

Standard Template Library (STL) C++ library Τ Μ Η Μ Α Μ Η Χ Α Ν Ι Κ Ω Ν Η / Υ Κ Α Ι Π Λ Η Ρ Ο Φ Ο Ρ Ι Κ Η Σ Standard Template Library (STL) C++ library Δομές Δεδομένων Μάριος Κενδέα kendea@ceid.upatras.gr Εισαγωγή Η Standard Βιβλιοθήκη προτύπων

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