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

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

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

Transcript

1 Κατακερματισμός (Hashing) O κατακερματισμός είναι μια τεχνική οργάνωσης ενός αρχείου. Είναι αρκετά δημοφιλής μέθοδος για την οργάνωση αρχείων Βάσεων Δεδομένων, καθώς βοηθάει σημαντικά στην γρήγορη αναζήτηση συγκεκριμένων τιμών ενός κλειδιού. Η βασική ιδέα είναι να καθορίζεται μια συνάρτηση κατακερματισμού (hash function) h(x), η οποία όταν εφαρμοσθεί στο πεδίο κατακερματισμού (hashing field) δίνει τον αριθμό σελίδας στον οποίο έχει αποθηκευθεί ή πρέπει να αποθηκευθεί η εγγραφή. Παράδειγμα: Έστω h(x) = x mod, δηλαδή η τιμή της είναι το υπόλοιπο της διαίρεσης της τιμής του κλειδιού με το. Η τιμή 32 δίνει υπόλοιπο 2, άρα η εγγραφή που έχει στο πεδίο hashing την τιμή 32 θα αποθηκευθεί στη σελίδα 2. Προφανώς το 2 που χρησιμοποιούμε εδώ δεν είναι η πραγματική διεύθυνση κάποιας σελίδας στο δίσκο, αλλά κάποια αντιστοίχιση της πραγματικής διεύθυνσης (πχ. 12aaf32acf σε δεκαεξαδικό σύστημα) με μια αναγνωρίσιμη τιμή. Αντιστρόφως, αν ψάχνουμε την εγγραφή που έχει τιμή 45 στο πεδίο hashing, εφαρμόζουμε τη συνάρτηση h(x) και το αποτέλεσμα είναι 45 mod = 5, συνεπώς γνωρίζουμε ότι αν υπάρχει η τιμή 45, αυτή θα βρίσκεται μόνο στη σελίδα με αριθμό 5. Έτσι, χρειάζεται πάντα αναζήτηση μόνο σε μία σελίδα, δηλαδή απαιτείται μόνο μία προσπέλαση στο δίσκο και μόνο μία μεταφορά των δεδομένων της σελίδας στη μνήμη. Στατικό hashing H πιο απλή μορφή hashing είναι αυτή που αναφέρθηκε παραπάνω. Υιοθετείται μια συγκεκριμένη συνάρτηση και χρησιμοποιείται για όσο τα δεδομένα αποθηκεύονται με αυτόν τον τρόπο. Προφανώς είναι πιθανό να αποφασίσουμε κάποια στιγμή ότι θέλουμε να την αντικαταστήσουμε με μια διαφορετική συνάρτηση. Αυτό δεν αλλάζει τις ιδιότητες και τα χαρακτηριστικά της συγκεκριμένης μεθόδου. Η πιο «φυσιολογική» συνάρτηση που μπορεί να χρησιμοποιηθεί είναι η h(x) = x mod N, όπου Ν ακέραιος. Αυτό συμβαίνει γιατί η συγκεκριμένη συνάρτηση δίνει ακριβώς Ν σελίδες, από 0 έως Ν-1, ενώ αν δεν υπάρχει κάποια «ιδιαίτερη» προϋπόθεση οι σελίδες θα δέχονται περίπου ίδιο όγκο εγγραφών. Πχ. για τους Αριθμούς Μητρώου των φοιτητών, περίπου το 1/ θα καταλήγει σε κάθε αριθμό από 0 έως 9, συνεπώς περίπου 1/ του συνολικού κάθε φορά πλήθους εγγραφών θα βρίσκεται σε κάθε μία από τις σελίδες. Το ίδιο ισχύει για τους αριθμούς κυκλοφορίας των αυτοκινήτων και άλλες παρόμοιες εφαρμογές. Ωστόσο, μπορεί να υπάρχουν και άλλες συναρτήσεις hashing, με διαφορετική συμπεριφορά, πάντως οι γενικές αρχές δεν αλλάζουν και σε εκείνη την περίπτωση. Ας δούμε ένα παράδειγμα μιας τέτοιας εναλλακτικής συνάρτησης, για να αποκτήσουμε μια αίσθηση των διαφορετικών επιλογών που έχουμε: h(x) = άθροισμα τελευταίου και προτελευταίου ψηφίου της τιμής του πεδίου Μια τέτοια συνάρτηση έχει προφανώς 19 τιμές (0 18), καθώς και τα δύο ψηφία μπορεί να είναι 0 (ελάχιστη τιμή του αθροίσματος 0), και τα δύο ψηφία μπορεί να είναι 9 (μέγιστη τιμή του αθροίσματος 18), ή τα δύο ψηφία να έχουν ενδιάμεσες τιμές (τιμές του αθροίσματος 1 έως και 17). Εδώ οι δύο ακραίες τιμές θα συμβούν λιγότερες φορές, η ιδέα πάντως παραμένει ίδια. Παράδειγμα: έχουμε τις εγγραφές ενός πίνακα με τις παρακάτω τιμές του πεδίου hashing:

2 5, 8,, 12,, 32,, 39, 41, 46, 51, 55, 60, 63, 66, 70 Η συνάρτηση hashing που θα χρησιμοποιήσουμε είναι h(x) = x mod 8. Υποθέτουμε ότι η σελίδα του δίσκου μας γεμίζει με 3 εγγραφές. Προφανώς αυτό είναι αδύνατο σε πραγματικές συνθήκες, καθώς καμία σελίδα δεν είναι τόσο μικρή, ούτε 3 εγγραφές μπορούν να γεμίσουν μια φυσιολογική σελίδα των bytes. Εδώ προσπαθούμε να εξοικειωθούμε με την ιδέα της κατανομής των εγγραφών με τη χρήση του στατικού hashing. Οι σελίδες θα είναι από 0 έως 7, γιατί αυτά είναι τα πιθανά υπόλοιπα της διαίρεσης με το 8. Προφανώς h(5) = 5 (γιατί 5 = 0*8 +5) h(8) = 0 (γιατί 8 = 1*8 +0) h() = 2 (γιατί = 1*8 +2) h(12) = 4 κ.ο.κ. Οι σελίδες λοιπόν παίρνουν την παρακάτω μορφή: Παρατηρούμε ότι, αν οι τιμές είναι τυχαίες και χωρίς κάποιο συγκεκριμένο κανόνα, οι εγγραφές περίπου ισοκατανέμονται στις σελίδες (κάτι τέτοιο θα γινόταν ακόμα πιο εμφανές αν είχαμε για παράδειγμα 00 τιμές). Συνεπώς, η χρήση του hashing εξασφαλίζει σχεδόν αυτόματα μια ισορροπημένη αξιοποίηση των διαφορετικών τμημάτων του δίσκου, κάτι που αποτελεί ένα σημαντικό πλεονέκτημα για οποιοδήποτε υπολογιστικό σύστημα. Πηγαίνοντας αντίστροφα, ας δούμε πώς βρίσκουμε μια τιμή που αναζητούμε ανάμεσα στις αποθηκευμένες. Ας υποθέσουμε λοιπόν ότι αναζητούμε την τιμή 53 του πεδίου hashing. Προφανώς γνωρίζουμε ότι χρησιμοποιείται η συνάρτηση hashing h(x) =x mod 8. Υπολογίζουμε h(53) = 5, γιατί 53 = 6* Μεταφέρουμε στη μνήμη τη σελίδα με διεύθυνση 5 και ψάχνουμε σε αυτήν. Είναι η μόνη σελίδα στην οποία μπορεί να βρίσκεται η συγκεκριμένη τιμή, αν θεωρήσουμε ότι καμία σελίδα δεν έχει χρειαστεί να «βολέψει» εγγραφές περισσότερες από το όριο της (δηλαδή περισσότερες από 3 εγγραφές). Κάνουμε την αναζήτηση για την τιμή 53 και διαπιστώνουμε ότι δεν υπάρχει. Η αναζήτηση μας τελειώνει σε αυτό το σημείο. Αντίστοιχα, αν αναζητούμε την τιμή 66, κάνουμε τον ίδιο υπολογισμό: Υπολογίζουμε h(66) = 2, γιατί 66 = 8* Μεταφέρουμε στη μνήμη τη σελίδα

3 με διεύθυνση 2 και ψάχνουμε σε αυτήν. Κάνουμε την αναζήτηση για την τιμή 66 και διαπιστώνουμε ότι υπάρχει και ακολούθως ξέρουμε ότι θα χρησιμοποιήσουμε αυτή την εγγραφή για να κάνουμε ό,τι προκάλεσε την αναζήτηση. Εκ πρώτης όψεως λοιπόν, φαίνεται ότι βρήκαμε μια πολύ καλή λύση για την αποθήκευση του αρχείου μας. Δυστυχώς, όπως σε όλες τις λύσεις, υπάρχουν και προβλήματα. Το πρώτο που διαπιστώνουμε είναι ότι αυτό το σύστημα μπορεί να χειριστεί το πολύ m * N εγγραφές, όπου m οι εγγραφές που χωρούν σε μια σελίδα και Ν οι σελίδες που προκύπτουν από τη συνάρτηση που χρησιμοποιείται. Στο παράδειγμα παραπάνω, το πλήθος αυτό είναι 3 * 8 =. Μετά τις εγγραφές, είναι βέβαιο ότι θα χρειαστεί να βρούμε μια λύση για τις επιπλέον εγγραφές. Αυτό μπορεί να συμβεί και νωρίτερα, αν οι εγγραφές σε μια συγκεκριμένη σελίδα γίνουν περισσότερες από τη χωρητικότητα της, έστω κι αν άλλες σελίδες έχουν χώρο. Πχ. στο παράδειγμα, αν προκύψει μια εγγραφή με τιμή 40 στο πεδίο hashing, θα χρειαστεί να βρούμε πώς θα την αποθηκεύσουμε, καθώς η σελίδα 0 στην οποία κανονικά πρέπει να αποθηκευθεί είναι γεμάτη. Αυτό το πρόβλημα δεν μπορεί να μας το λύσει ο περίσσιος χώρος που έχει αυτή τη στιγμή η σελίδα 1. Μια λύση που μπορούμε να χρησιμοποιήσουμε είναι να επεκτείνουμε την κάθε σελίδα από τις αρχικές με μια διεύθυνση άλλης σελίδας, στην οποία αποθηκεύουμε τις εγγραφές που πλεονάζουν από την αρχική σελίδα. Ας θυμίσουμε ότι κάθε σελίδα του δίσκου μας κρατάει ένα μικρό τμήμα για τις ανάγκες του συστήματος, γράφοντας εκεί διάφορες πληροφορίες διαχείρισης. Στην περίπτωση μας, θα καταγραφεί εκεί σε μια συγκεκριμένη θέση η διεύθυνση της σελίδας στην οποία «συνεχίζεται» η συγκεκριμένη σελίδα. Αυτή θα είναι συνήθως η πρώτη διαθέσιμη σελίδα στο σύστημα, ωστόσο εμείς θα θεωρούμε πάντα για λόγους απλότητας ότι δεν έχουμε «κατειλημμένες» σελίδες μετά τις σελίδες που χρησιμοποιούμε για την αρχική αποθήκευση (σελίδες 0 έως 7 στην προκειμένη περίπτωση), συνεπώς θα χρησιμοποιήσουμε διαδοχικά τις σελίδες8, 9, κοκ. Υποθέτουμε λοιπόν ότι μετά την αρχική αποθήκευση έρχεται μια νέα εγγραφή με τιμή του πεδίου hashing ίση με 40. Επειδή h(40) = 0, η εγγραφή πρέπει να αποθηκευθεί στη σελίδα 0, η οποία είναι γεμάτη. Θα πάμε στην επόμενη διαθέσιμη σελίδα, η οποία είναι η 8. Θα χρειαστεί να καταγράψουμε στη σελίδα 0 ότι η σελίδα στην οποία έχει επεκταθεί η σελίδα 0 είναι η 8: Με την τροποποίηση που κάναμε στο αρχικό σχήμα αποθήκευσης, λύσαμε κατ αρχήν το πρόβλημα της υπερχείλισης σελίδων. Απλώς επεκτείνουμε τη σελίδα, καταγράφοντας ποια είναι η σελίδα στην οποία συνεχίζεται η αποθήκευση. Άρα η αναζήτηση μας τώρα θα κάνει την αρχική αναζήτηση στη σελίδα που παραπέμπει η τιμή που υπολογίζει η συνάρτηση hashing και αν δεν την βρίσκει θα εξετάζει αν στη σελίδα αυτή έχει καταγραφεί μια πληροφορία σχετικά με την «επόμενη» σελίδα. Στην περίπτωση μας θα βρει τον αριθμό 8 και θα επιστρέψει στο δίσκο για να πάρει τη σελίδα 8. Αν δεν καταφέρει να βρει την τιμή ούτε σε αυτή τη σελίδα, θα εξετάσει αν υπάρχει καταγραφή επόμενης σελίδας. Στη συγκεκριμένη περίπτωση, θα βρει το σημείο εκείνο κενό (δηλαδή θα βρει μια τιμή null) και θα τερματίσει την αναζήτηση εκεί.

4 Αυτή η διαδικασία δημιουργεί βεβαίως άλλα προβλήματα. Το προφανές είναι ότι, αν δεν υπάρχει κάποιος τρόπος να μείνουν οι τιμές ταξινομημένες, είναι πιθανόν να χρειαστεί να φέρουμε ολόκληρη την αλυσίδα των σελίδων μέχρι να βρούμε ή να μην βρούμε την τιμή που ψάχνουμε. Έτσι, είναι δύσκολο να υπολογίσουμε και τον χρόνο που θα μας χρειάζεται για μια μέση αναζήτηση. Επεκτατός κατακερματισμός (extendible hashing) Μέρος των προβλημάτων που προκύπτουν από την παραπάνω εφαρμογή του hashing οφείλεται στη στατικότητα που έχει η μέθοδος. Ορίζονται αρχικά οι σελίδες που διατίθενται από το σύστημα και ακολούθως πρέπει να βρεθούν λύσεις για την υπερχείλιση, οι οποίες όμως δεν μπορούν να κάνουν κάτι σχετικά με τις αρχικές σελίδες, παρά μόνο να τις επεκτείνουν. Θα ήταν πιο βολικό ένα σχήμα όπου θα μπορούσαμε να δίνουμε επί μέρους λύσεις επέκτασης μόνο όπου υπάρχει ανάγκη. Αυτό κάνει ο επεκτατός κατακερματισμός (που σημαίνει κατά λέξη «κατακερματισμός που μπορεί να επεκτείνεται»). Στην περίπτωση αυτή, διατηρούμε μια διαφορετική διευθυνσιοδότηση από αυτήν που είδαμε στην αρχή. Η βασική μας αρχή είναι ότι ξεκινάμε με όσες σελίδες χρειαζόμαστε και όχι με όσες προκύπτουν από τις τιμές του πεδίου hashing. Όταν χρειαζόμαστε περισσότερο χώρο σε κάποια σελίδα, διασπούμε αυτή τη σελίδα σε δύο νέες, διατηρώντας όμως ανέγγιχτες τις υπόλοιπες. Παράδειγμα: έχουμε τις εγγραφές ενός πίνακα με τις παρακάτω τιμές του πεδίου hashing: 5, 8,, 12,, 31 Ισχύουν τα ίδια αντικειμενικά δεδομένα με το πρώτο μας παράδειγμα, δηλαδή h(x) = x mod 8 και σε κάθε σελίδα του δίσκου χωρούν 3 εγγραφές. Στην περίπτωση μας, καλυπτόμαστε αρχικά με μόλις 2 σελίδες. Ουσιαστικά πρέπει να αποφασίσουμε σε ποια από τις 2 αυτές σελίδες θα ενσωματωθεί η κάθε μία από τις σελίδες 0, 1, 2,,7. Θα μπορούσαμε να πούμε ότι στην «νέα» σελίδα 0 θα πάνε οι ζυγές σελίδες (0, 2, 4, 6) και στην «νέα» σελίδα 1 θα πάνε οι μονές σελίδες (1, 3, 5, 7). Αυτός είναι βέβαια ένας πρακτικός τρόπος, ο οποίος δεν μπορεί να εφαρμοστεί εύκολα από το λογισμικό του συστήματος μας. Ας δούμε μια λύση που ταιριάζει πολύ καλύτερα με τη δυαδική φύση των υπολογισμών ενός οποιουδήποτε συστήματος: Αν χρειαζόμαστε δύο σελίδες, μπορούμε να δώσουμε τις διευθύνσεις 0 και 1. Αν μετατρέψουμε τις αρχικές διευθύνσεις στα δυαδικά τους ισοδύναμα, μπορούμε να πούμε ότι στη σελίδα 0 θα πάνε όλες οι σελίδες που η διεύθυνση τους έχει πρώτο δυαδικό ψηφίο το 0 και στη σελίδα 1 θα πάνε όλες οι σελίδες που η διεύθυνση τους έχει πρώτο δυαδικό ψηφίο το 1. Ας δούμε τι προκύπτει, υπολογίζοντας τα δυαδικά ισοδύναμα των σελίδων 0 έως 7: Αρχική διεύθυνση Δυαδικό ισοδύναμο

5 Αν μας αρκούν 2 σελίδες, αποφασίζουμε ότι όποια διεύθυνση έχει πρώτο δυαδικό ψηφίο το 0 θα πάει στη σελίδα 0 και όποια διεύθυνση έχει πρώτο δυαδικό ψηφίο το 1 θα πάει στη σελίδα 1. Πρακτικά, όποια εγγραφή βγάζει τιμή hashing ίση με 0, 1, 2, ή 3 κατανέμεται στη σελίδα 0 και όποια εγγραφή βγάζει τιμή hashing ίση με 4, 5, 6, ή 7 κατανέμεται στη σελίδα 1. Τιμή πεδίου Τιμή hashing Τιμή δυαδικού ισοδυνάμου Ας πούμε ότι η επόμενη εγγραφή που προκύπτει είναι η 30. Υπολογίζουμε h(30) = 6, άρα αυτή πρέπει να κατανεμηθεί στη σελίδα που δείχνει η τιμή 1. Θα χρειαστεί όμως να επεκτείνουμε τη σελίδα αυτή, γιατί είναι ήδη γεμάτη. Άρα δεν καλυπτόμαστε πλέον από το ένα ψηφίο που χρησιμοποιούμε. Η λύση είναι να χρησιμοποιήσουμε και το δεύτερο ψηφίο, με αποτέλεσμα να προκύψουν 4 διαφορετικές τιμές. Αναπαράγουμε εδώ τον πίνακα με τα δυαδικά ισοδύναμα, τονίζοντας τώρα τα δύο πρώτα ψηφία: Αρχική διεύθυνση Δυαδικό ισοδύναμο Τώρα λοιπόν θα χρησιμοποιούμε 4 δείκτες, χωρίς όμως να είναι απαραίτητη η χρήση 4 σελίδων. Θα χρειαστεί όπως είπαμε να διασπάσουμε τη σελίδα 1 στις σελίδες και 11 και να κατανείμουμε και πάλι τις εγγραφές, αλλά η 0 δεν χρειάζεται διάσπαση. Συνεπώς, οι νέοι δείκτες 00 και 01 θα δείχνουν και οι δύο στην ίδια σελίδα. Πώς θα κατανεμηθούν οι τιμές των εγγραφών της σελίδας 1 στις δύο νέες σελίδες και 11; Θα χρειαστεί να δούμε τι συμβαίνει με τις τιμές hashing. Από τον παραπάνω πίνακα βλέπουμε ότι οι τιμές 4 και 5 αντιστοιχούν στη σελίδα και οι τιμές 6 και 7 στη σελίδα 11:

6 Τι συμβαίνει αν χρειαστεί να αναζητήσουμε μια εγγραφή; Ας πούμε ότι αναζητούμε την τιμή 16. Υπολογίζουμε h(16) = 16 mod 8 = 0. Το δυαδικό ισοδύναμο είναι 000, άρα παίρνοντας τα δυο πρώτα ψηφία βλέπουμε ότι πρέπει να πάρουμε τη σελίδα στην οποία δείχνει η τιμή 00. Δεν μας ενδιαφέρει ότι στην ίδια σελίδα δείχνει και ένας άλλος δείκτης. Το ίδιο συμβαίνει και στην άλλη περίπτωση. Ας πούμε ότι αναζητούμε την τιμή 23. Υπολογίζουμε h(23) = 23 mod 8 = 7. Το δυαδικό ισοδύναμο είναι 111, άρα παίρνοντας τα δυο πρώτα ψηφία βλέπουμε ότι πρέπει να πάρουμε τη σελίδα στην οποία δείχνει η τιμή 11. Δεν υπάρχει κάποια διαφορά από την προηγούμενη περίπτωση. Αν προκύψει ανάγκη να διασπαστεί η σελίδα στην οποία δείχνουν τα 00 και 01, δεν χρειάζεται να κάνουμε κάτι στους δείκτες. Απλώς οι τιμές hashing 0 και 1 θα πάνε στη σελίδα που δείχνει το 00 και οι τιμές hashing 2 και 3 θα πάνε στη σελίδα που δείχνει το 01. Πχ. αν προκύψει η τιμή 9, η νέα μορφή των σελίδων θα είναι: Ας επιστρέψουμε στην προηγούμενη κατάσταση, όπου οι δείκτες 00 και 01 δείχνουν στην ίδια σελίδα (δηλαδή πριν την εισαγωγή του 9). Τι συμβαίνει αν χρειαστούμε νέα διάσπαση σε κάποια από τις σελίδες ή 11; Ας υποθέσουμε ότι έρχονται οι τιμές 20, 28 και 39. Οι 20 και 28 πρέπει να μπουν στη σελίδα που δείχνει το και η 39 στην 11. Η πρέπει να διασπασθεί και πάλι, άρα χρειάζεται και νέα επέκταση των ψηφίων από 2 σε 3. Η θα

7 διασπασθεί στην 0 και στην 1. Και οι υπόλοιπες διευθύνσεις θα γίνουν τριψήφιες, αλλά αυτό δεν θα επηρεάσει τις σελίδες Είναι φανερό ότι αυτή η μέθοδος μας δίνει τη δυνατότητα να επεκτείνουμε τις σελίδες μόνο για τις περιπτώσεις που αυτό είναι απαραίτητο. Για τις υπόλοιπες σελίδες, μια τέτοια επέκταση απλώς δημιουργεί επιπλέον γραμμές στον πίνακα της διευθυνσιοδότησης, με τους νέους δείκτες να δείχνουν όπου έδειχνε και ο παλιός. Γραμμικός κατακερματισμός (Linear hashing) Μια άλλη ιδέα για δυναμική επέκταση του hashing είναι να επεκτείνουμε τις σελίδες δυναμικά, χωρίς να χρειάζεται κάποιος κατάλογος, με τιμές και διευθύνσεις που δείχνουν στις σελίδες του δίσκου. Ας επιστρέψουμε στο αρχικό παράδειγμα: Ας υποθέσουμε ότι η επόμενη τιμή του πεδίου hashing που χρειάζεται να αποθηκευθεί είναι η 45. Υπολογίζουμε h(45) = x mod 8 = 5. Βλέπουμε ωστόσο ότι η σελίδα 5 είναι γεμάτη.

8 Χρειάζεται λοιπόν να δημιουργήσουμε μια σύνδεση με άλλη σελίδα, η οποία θα αποτελεί την επέκταση της 5 και θα είναι μια υπερχείλιση Εφ όσον χρειάστηκε η επέκταση μιας σελίδας, συμπεραίνουμε ότι σύντομα θα προκύπτει ανάγκη επέκτασης και άλλων σελίδων. Δημιουργούμε λοιπόν χώρο ως εξής: Διασπούμε την πρώτη σελίδα (δηλαδή την 0) σε δύο, όχι όμως με την ίδια συνάρτηση. Αντίθετα, για αυτές μόνο τις σελίδες, χρησιμοποιούμε τη συνάρτηση με διπλάσιο Ν, δηλαδή την h 1(x) = x mod 16. Η επόμενη σελίδα είναι η 8. Για την σελίδα που διασπάστηκε, πρέπει να εξετάσουμε αν οι τιμές που βρίσκονταν εκεί πηγαίνουν στη σελίδα 0 ή στη σελίδα 8. Αν το υπόλοιπο της διαίρεσης με το 8 ήταν 0, το υπόλοιπο διαίρεσης με το 16 θα είναι είτε 0 είτε 8. Οι τιμές που έχουμε στη σελίδα 0 λοιπόν κατανέμονται ως εξής: Χρειάζεται και μια ακόμη πρόβλεψη: πρέπει να ξέρουμε σε ποιες σελίδες χρησιμοποιείται η συνάρτηση x mod 8 και σε ποιες η x mod 16. Για αυτό το σκοπό, δημιουργούμε έναν μετρητή n, ο οποίος μετράει τι διασπάσεις. Αυτός ο μετρητής ξεκινάει από το 0 και σε κάθε διάσπαση σελίδας αυξάνεται κατά 1. Κάθε φορά που χρειάζεται να αποθηκεύσουμε μια τιμή, κάνουμε τα ακόλουθα βήματα: 1. Χρησιμοποιούμε την αρχική συνάρτηση x mod 8 και βρίσκουμε τη σελίδα στην οποία πρέπει να αποθηκευθεί η τιμή. 2. Μετά κοιτάμε την τιμή του μετρητή. Αν είναι μικρότερη από την σελίδα που υπολογίσαμε, προχωράμε κανονικά Αν δεν είναι, αυτό σημαίνει ότι η σελίδα την οποία υπολογίσαμε έχει διασπαστεί. Στην περίπτωση αυτή, χρησιμοποιούμε την νέα συνάρτηση x mod 16. Συνεχίζοντας το παράδειγμα μας, μετά την εισαγωγή του 45, και τη διάσπαση της σελίδας 0, η κατάσταση έχει ως εξής:

9 Ο δείκτης έχει την τιμή 1. Υποθέτουμε ότι έρχεται η τιμή 59. Υπολογίζουμε h(59) = 59 mod 8 =3. Ο δείκτης έχει την τιμή 1, άρα η σελίδα 3 δεν έχει ακόμα διασπαστεί. Η τιμή μπαίνει κανονικά στη σελίδα 3: H επόμενη τιμή είναι 40. h(40) =40 mod 8 = 0. Άρα η τιμή πρέπει να πάει στη σελίδα 0. Ο μετρητής είναι 1, άρα η πρώτη σελίδα έχει διασπαστεί και αυτή είναι η 0. Επιστρέφουμε λοιπόν και ξανακάνουμε τον υπολογισμό με τη νέα συνάρτηση h(40) = 40 mod 16 = 8. Άρα η τιμή πρέπει να πάει στη σελίδα 8. Όταν χρειαστεί να διασπαστεί και η σελίδα 5, η οποία έχει και μια σελίδα υπερχείλισης, η νέα σελίδα θα είναι η 5+8 = 13. Εκεί θα χρειαστεί να δούμε για κάθε τιμή αν η συνάρτηση x mod 16 μας δίνει αποτέλεσμα 5 ή 13. Στο συγκεκριμένο παράδειγμα, θα κάνουμε τον υπολογισμό για τις τιμές 5, 13, και 45. Οι 5 και δίνουν αποτέλεσμα 5 και οι 13 και 45 δίνουν αποτέλεσμα 13. Άρα η νέα μορφή θα είναι (χωρίς υπερχείλιση) Όταν σιγά-σιγά διασπαστούν όλες οι σελίδες, χρησιμοποιούμε για όλες τη νέα συνάρτηση x mod 16 και μηδενίζουμε τον μετρητή. Λογικά, ο χώρος είναι πλέον αρκετός για να συνεχίσουμε για πολύ περισσότερες τιμές. Αν χρειαστούμε και πάλι επεκτάσεις κάνουμε την ίδια διαδικασία, χρησιμοποιώντας και τη συνάρτηση x mod 32, διπλασιάζοντας ακόμη μια φορά το χώρο.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Διαχρονικές δομές δεδομένων

Διαχρονικές δομές δεδομένων Διαχρονικές δομές δεδομένων Μια τυπική δομή δεδομένων μεταβάλλεται με πράξεις εισαγωγής ή διαγραφής Π.χ. κοκκινόμαυρο δένδρο εισαγωγή 0 18 0 5 39 73 1 46 6 80 Αποκατάσταση ισορροπίας 5 39 73 0 46 6 80

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

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

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

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

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

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

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

Άσκηση 1. με κόκκινο χρώμα σημειώνονται οι κρίσιμοι κόμβοι

Άσκηση 1. με κόκκινο χρώμα σημειώνονται οι κρίσιμοι κόμβοι Άσκηση 1 α) Παρουσιάστε τα AVL δέντρα που προκύπτουν από τις εισαγωγές των κλειδιών 1, 4, 9,, 7,,, 1, 4 και σε ένα αρχικά άδειο AVL δέντρο με κόκκινο χρώμα σημειώνονται οι κρίσιμοι κόμβοι +4 +9 + 1 1 1

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

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

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

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

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

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

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

Υπάρχουν δύο τύποι μνήμης, η μνήμη τυχαίας προσπέλασης (Random Access Memory RAM) και η μνήμη ανάγνωσης-μόνο (Read-Only Memory ROM).

Υπάρχουν δύο τύποι μνήμης, η μνήμη τυχαίας προσπέλασης (Random Access Memory RAM) και η μνήμη ανάγνωσης-μόνο (Read-Only Memory ROM). Μνήμες Ένα από τα βασικά πλεονεκτήματα των ψηφιακών συστημάτων σε σχέση με τα αναλογικά, είναι η ευκολία αποθήκευσης μεγάλων ποσοτήτων πληροφοριών, είτε προσωρινά είτε μόνιμα Οι πληροφορίες αποθηκεύονται

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

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

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

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

Φροντιστήριο Αποθήκευση σε δίσκο, βασικές οργανώσεις αρχείων κατακερματισμός και δομές ευρετηρίων για αρχεία

Φροντιστήριο Αποθήκευση σε δίσκο, βασικές οργανώσεις αρχείων κατακερματισμός και δομές ευρετηρίων για αρχεία ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι Φροντιστήριο 17-1-2011 Αποθήκευση σε δίσκο, βασικές οργανώσεις αρχείων κατακερματισμός και δομές ευρετηρίων για αρχεία Θεωρία Άτρακτος/αυλάκι : ομόκεντροι κύκλοι στον δίσκο Κύλινδρος:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Οργάνωση Αρχείων. Βάσεις Δεδομένων : Οργάνωση Αρχείων 1. Blobs

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

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

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

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

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

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

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

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

Βάσεις Δεδομένων. Αποθήκευση σε δίσκο, βασικές οργανώσεις αρχείων, κατακερματισμός και δομές ευρετηρίων για αρχεία. Φροντιστήριο 7 o

Βάσεις Δεδομένων. Αποθήκευση σε δίσκο, βασικές οργανώσεις αρχείων, κατακερματισμός και δομές ευρετηρίων για αρχεία. Φροντιστήριο 7 o Βάσεις Δεδομένων Αποθήκευση σε δίσκο, βασικές οργανώσεις αρχείων, κατακερματισμός και δομές ευρετηρίων για αρχεία Φροντιστήριο 7 o 2-2-2008 Θεωρία Άτρακτος/αυλάκι : ομόκεντροι κύκλοι στον δίσκο Κύλινδρος:

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

0x2 = 2. = = δηλαδή η f δεν. = 2. Άρα η συνάρτηση f δεν είναι συνεχής στο [0,3]. Συνεπώς δεν. x 2. lim f (x) = lim (2x 1) = 3 και x 2 x 2

0x2 = 2. = = δηλαδή η f δεν. = 2. Άρα η συνάρτηση f δεν είναι συνεχής στο [0,3]. Συνεπώς δεν. x 2. lim f (x) = lim (2x 1) = 3 και x 2 x 2 ΚΕΦΑΛΑΙΟ ο: ΣΥΝΑΡΤΗΣΕΙΣ - ΟΡΙΟ - ΣΥΝΕΧΕΙΑ ΣΥΝΑΡΤΗΣΗΣ ΕΝΟΤΗΤΑ 8: ΘΕΩΡΗΜΑ BOLZANO - ΠΡΟΣΗΜΟ ΣΥΝΑΡΤΗΣΗΣ - ΘΕΩΡΗΜΑ ΕΝΔΙΑΜΕΣΩΝ ΤΙΜΩΝ - ΘΕΩΡΗΜΑ ΜΕΓΙΣΤΗΣ ΚΑΙ ΕΛΑΧΙΣΤΗΣ ΤΙΜΗΣ - ΣΥΝΟΛΟ ΤΙΜΩΝ ΣΥΝΕΧΟΥΣ ΣΥΝΑΡΤΗΣΗΣ

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

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

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

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος 2001-2002 ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος 2001-2002 ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος 2001-2002 ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4 «Προγραμματισμός Η/Υ» - Τετράδιο Εργαστηρίου #4 2 Γενικά Στο Τετράδιο #4 του Εργαστηρίου θα αναφερθούμε σε θέματα διαχείρισης πινάκων

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

Κεφάλαιο 13 Αντισταθμιστική Ανάλυση

Κεφάλαιο 13 Αντισταθμιστική Ανάλυση Κεφάλαιο 13 Αντισταθμιστική Ανάλυση Περιεχόμενα 13.1 Αντισταθμιστική Ανάλυση... 248 13.2 Μέθοδοι Αντισταθμιστικής Ανάλυσης... 250 13.2.1 Η χρεωπιστωτική μέθοδος... 250 13.2.2 Η ενεργειακή μέθοδος... 251

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

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

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

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

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

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

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

ΠΛΗ10 Κεφάλαιο 2. ΠΛH10 Εισαγωγή στην Πληροφορική: Τόμος Α Κεφάλαιο: : Συστήματα Αρίθμησης ΔΥΑΔΙΚΟ ΣΥΣΤΗΜΑ ΑΡΙΘΜΗΣΗΣ

ΠΛΗ10 Κεφάλαιο 2. ΠΛH10 Εισαγωγή στην Πληροφορική: Τόμος Α Κεφάλαιο: : Συστήματα Αρίθμησης ΔΥΑΔΙΚΟ ΣΥΣΤΗΜΑ ΑΡΙΘΜΗΣΗΣ ΠΛH10 Εισαγωγή στην Πληροφορική: Τόμος Α Κεφάλαιο: 2 2.2.1 : Συστήματα Αρίθμησης ΔΥΑΔΙΚΟ ΣΥΣΤΗΜΑ ΑΡΙΘΜΗΣΗΣ ΔΥΑΔΙΚΟ ΣΥΣΤΗΜΑ ΑΡΙΘΜΗΣΗΣ. Στο δυαδικό σύστημα αρίθμησης, αντί για δεκάδες, εκατοντάδες με τις

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

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

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Ενότητα 3 Λειτουργίες σε Bits, Αριθμητικά Συστήματα Χρήστος Γκουμόπουλος Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων Φύση υπολογιστών Η

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

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

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

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

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

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

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

Αλγόριθμοι Αναζήτησης. (AeppAcademy.com)

Αλγόριθμοι Αναζήτησης. (AeppAcademy.com) Αλγόριθμοι Αναζήτησης (AeppAcademy.com) 1. Γιατί τους χρειαζόμαστε Συχνά χρειάζεται να βρίσκουμε ένα συγκεκριμένο στοιχείο δεδομένων ανάμεσα σε λίγα ή πολλά (εκατοντάδες, χιλιάδες, εκατομμύρια ή περισσότερα)

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

6η Δραστηριότητα. Ναυμαχία Αλγόριθμοι αναζήτησης. Περίληψη. Αντιστοιχία με το σχολικό πρόγραμμα * Ικανότητες. Ηλικία. Υλικά

6η Δραστηριότητα. Ναυμαχία Αλγόριθμοι αναζήτησης. Περίληψη. Αντιστοιχία με το σχολικό πρόγραμμα * Ικανότητες. Ηλικία. Υλικά 6η Δραστηριότητα Ναυμαχία Αλγόριθμοι αναζήτησης Περίληψη Συχνά ζητάμε από τους υπολογιστές να ψάξουν πληροφορίες στο εσωτερικό μεγάλων αρχείων δεδομένων. Για να το καταφέρουν, απαιτούνται ταχείες και αποτελεσματικές

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

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

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

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

ΗΥ240: οµές εδοµένων Χειµερινό Εξάµηνο Ακαδηµαϊκό Έτος Παναγιώτα Φατούρου. Προγραµµατιστική Εργασία 3 ο Μέρος

ΗΥ240: οµές εδοµένων Χειµερινό Εξάµηνο Ακαδηµαϊκό Έτος Παναγιώτα Φατούρου. Προγραµµατιστική Εργασία 3 ο Μέρος Πανεπιστήµιο Κρήτης, Τµήµα Επιστήµης Υπολογιστών 6 εκεµβρίου 2008 ΗΥ240: οµές εδοµένων Χειµερινό Εξάµηνο Ακαδηµαϊκό Έτος 2008-09 Παναγιώτα Φατούρου Προγραµµατιστική Εργασία 3 ο Μέρος Ηµεροµηνία Παράδοσης:

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

Advanced Data Indexing

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

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

Αριθμητικά Συστήματα

Αριθμητικά Συστήματα Αριθμητικά Συστήματα Σε οποιοδήποτε αριθμητικό σύστημα, με βάση τον αριθμό Β, ένας ακέραιος αριθμός με πλήθος ψηφίων ν, εκφράζεται ως ακολούθως: α ν-1 α ν-2 α 1 α 0 = α ν-1 Β ν-1 + α ν-2 Β ν-2 + + α 1

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

Συνοπτική Μεθοδολογία Ασκήσεων IP Fragmentation. Ασκήσεις στο IP Fragmentation

Συνοπτική Μεθοδολογία Ασκήσεων IP Fragmentation. Ασκήσεις στο IP Fragmentation Συνοπτική Μεθοδολογία Ασκήσεων IP Fragmentation Οι σημειώσεις που ακολουθούν περιγράφουν τις ασκήσεις IP Fragmentation που θα συναντήσετε στο κεφάλαιο 3. Η πιο συνηθισμένη και βασική άσκηση αναφέρεται

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

Υπολογισμός αθροισμάτων

Υπολογισμός αθροισμάτων Υπολογισμός αθροισμάτων Τα αθροίσματα θα τα δημιουργούμε σαν συναρτήσεις και θα τα αποθηκεύουμε σε αρχείο (m-file) με την ίδια ονομασία με τη συνάρτηση. Για να δημιουργήσουμε ένα άθροισμα ξεκινάμε μηδενίζοντας

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

Αρχιτεκτονική Υπολογιστών II 16-2-2012. Ενδεικτικές απαντήσεις στα θέματα των εξετάσεων

Αρχιτεκτονική Υπολογιστών II 16-2-2012. Ενδεικτικές απαντήσεις στα θέματα των εξετάσεων Αρχιτεκτονική Υπολογιστών II 6 --0 Ενδεικτικές απαντήσεις στα θέματα των εξετάσεων Θέμα. Τι γνωρίζετε για την τοπικότητα των αναφορών και ποιών μονάδων του υπολογιστή ή τεχνικών η απόδοση εξαρτάται από

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ Ακολουθιακή ομή

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ Ακολουθιακή ομή ΑΔ.1 Να αναπτυχθεί αλγόριθμος που θα διαβάζει την ημερομηνία γέννησης (ημέρα, μήνας, χρόνος) καθώς και την τρέχουσα ημερομηνία,και θα υπολογίζει την ηλικία του. Για να λύσουμε την άσκηση θα υπολογίσουμε

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

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

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

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

Κεφάλαιο 13. Αποθήκευση σε ίσκους, Βασικές οµέςαρχείων, και Κατακερµατισµός. ιαφάνεια 13-1

Κεφάλαιο 13. Αποθήκευση σε ίσκους, Βασικές οµέςαρχείων, και Κατακερµατισµός. ιαφάνεια 13-1 ιαφάνεια 13-1 Κεφάλαιο 13 Αποθήκευση σε ίσκους, Βασικές οµέςαρχείων, και Κατακερµατισµός ίαβλος, Επιµ.Μ.Χατζόπουλος 1 Γιατί θα µιλήσουµε Μονάδες Αποθήκευσης ίσκων Αρχεία Εγγραφών Πράξεις σε αρχεία Αρχεία

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

µπιτ Λύση: Κάθε οµάδα των τεσσάρων µπιτ µεταφράζεται σε ένα δεκαεξαδικό ψηφίο 1100 C 1110 E Άρα το δεκαεξαδικό ισοδύναµο είναι CE2

µπιτ Λύση: Κάθε οµάδα των τεσσάρων µπιτ µεταφράζεται σε ένα δεκαεξαδικό ψηφίο 1100 C 1110 E Άρα το δεκαεξαδικό ισοδύναµο είναι CE2 ! Βρείτε το δεκαεξαδικό ισοδύναµο του σχήµατος µπιτ 110011100010 Λύση: Κάθε οµάδα των τεσσάρων µπιτ µεταφράζεται σε ένα δεκαεξαδικό ψηφίο 1100 C 1110 E 0010 2 Άρα το δεκαεξαδικό ισοδύναµο είναι CE2 2 !

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

ΚΕΦΑΛΑΙΟ 2 ΔΙΑΤΑΞΕΙΣ, ΜΕΤΑΘΕΣΕΙΣ, ΣΥΝΔΥΑΣΜΟΙ

ΚΕΦΑΛΑΙΟ 2 ΔΙΑΤΑΞΕΙΣ, ΜΕΤΑΘΕΣΕΙΣ, ΣΥΝΔΥΑΣΜΟΙ ΚΕΦΑΛΑΙΟ ΔΙΑΤΑΞΕΙΣ ΜΕΤΑΘΕΣΕΙΣ ΣΥΝΔΥΑΣΜΟΙ Εισαγωγή. Οι σχηματισμοί που προκύπτουν με την επιλογή ενός συγκεκριμένου αριθμού στοιχείων από το ίδιο σύνολο καλούνται διατάξεις αν μας ενδιαφέρει η σειρά καταγραφή

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

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

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

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

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

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

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

Κεφάλαιο 2 ο Βασικές Έννοιες Αλγορίθμων (σελ )

Κεφάλαιο 2 ο Βασικές Έννοιες Αλγορίθμων (σελ ) Κεφάλαιο 2 ο Βασικές Έννοιες Αλγορίθμων (σελ. 25 48) Τι είναι αλγόριθμος; Γ ΛΥΚΕΙΟΥ Αλγόριθμος είναι μία πεπερασμένη σειρά ενεργειών, αυστηρά καθορισμένων και εκτελέσιμων σε πεπερασμένο χρονικό διάστημα,

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

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

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

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

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

Αλγόριθμοι Ταξινόμησης Μέρος 4 Αλγόριθμοι Ταξινόμησης Μέρος 4 Μανόλης Κουμπαράκης Δομές Δεδομένων και Τεχνικές 1 Μέθοδοι Ταξινόμησης Βασισμένοι σε Συγκρίσεις Κλειδιών Οι αλγόριθμοι ταξινόμησης που είδαμε μέχρι τώρα αποφασίζουν πώς να

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

Οργάνωση Αρχείων. Βάσεις Δεδομένων : Οργάνωση Αρχείων 1. Blobs

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

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

Ένα αναλογικό σήμα περιέχει άπειρες πιθανές τιμές. Για παράδειγμα ένας απλός ήχος αν τον βλέπαμε σε ένα παλμογράφο θα έμοιαζε με το παρακάτω:

Ένα αναλογικό σήμα περιέχει άπειρες πιθανές τιμές. Για παράδειγμα ένας απλός ήχος αν τον βλέπαμε σε ένα παλμογράφο θα έμοιαζε με το παρακάτω: Σημειώσεις Δικτύων Αναλογικά και ψηφιακά σήματα Ένα αναλογικό σήμα περιέχει άπειρες πιθανές τιμές. Για παράδειγμα ένας απλός ήχος αν τον βλέπαμε σε ένα παλμογράφο θα έμοιαζε με το παρακάτω: Χαρακτηριστικά

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

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

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

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

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

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

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

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

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

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

2ο ΓΕΛ ΑΓ.ΔΗΜΗΤΡΙΟΥ ΑΕΠΠ ΘΕΟΔΟΣΙΟΥ ΔΙΟΝ ΠΡΟΣΟΧΗ ΣΤΑ ΠΑΡΑΚΑΤΩ

2ο ΓΕΛ ΑΓ.ΔΗΜΗΤΡΙΟΥ ΑΕΠΠ ΘΕΟΔΟΣΙΟΥ ΔΙΟΝ ΠΡΟΣΟΧΗ ΣΤΑ ΠΑΡΑΚΑΤΩ ΠΡΟΣΟΧΗ ΣΤΑ ΠΑΡΑΚΑΤΩ ΣΤΑΘΕΡΕΣ είναι τα μεγέθη που δεν μεταβάλλονται κατά την εκτέλεση ενός αλγόριθμου. Εκτός από τις αριθμητικές σταθερές (7, 4, 3.5, 100 κλπ), τις λογικές σταθερές (αληθής και ψευδής)

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

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

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

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

ΠΛΗΡΟΦΟΡΙΚΗ I Ενότητα 6

ΠΛΗΡΟΦΟΡΙΚΗ I Ενότητα 6 ΠΛΗΡΟΦΟΡΙΚΗ I Ενότητα 6 ΑΡΙΘΜΗΤΙΚΑ ΣΥΣΤΗΜΑΤΑ Bits & Bytes Bit: η μικρότερη μονάδα πληροφορίας μία από δύο πιθανές καταστάσεις (ναι / όχι, αληθές / ψευδές, n / ff) κωδικοποίηση σε 0 ή 1 δυαδικό σύστημα

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

ΚΕΦΑΛΑΙΟ 2: ΟΡΙΖΟΥΣΕΣ

ΚΕΦΑΛΑΙΟ 2: ΟΡΙΖΟΥΣΕΣ ΚΕΦΑΛΑΙΟ ΚΕΦΑΛΑΙΟ :. ΕΙΣΑΓΩΓΗ Σε κάθε τετραγωνικό πίνακα ) τάξης n θα αντιστοιχίσουμε έναν πραγματικό ( ij αριθμό, τον οποίο θα ονομάσουμε ορίζουσα του πίνακα. Η ορίζουσα θα συμβολίζεται det ή Α ή n n

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

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

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

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

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

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

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

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

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

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

Οργάνωση Υπολογιστών

Οργάνωση Υπολογιστών Οργάνωση Υπολογιστών Επιμέλεια: Γεώργιος Θεοδωρίδης, Επίκουρος Καθηγητής Ανδρέας Εμερετλής, Υποψήφιος Διδάκτορας Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών 1 Άδειες Χρήσης Το παρόν υλικό

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

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

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

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

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

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

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

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο Κάθε δομή μπορεί να χρησιμοποιηθεί σε οποιοδήποτε πρόβλημα ή εφαρμογή

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο Κάθε δομή μπορεί να χρησιμοποιηθεί σε οποιοδήποτε πρόβλημα ή εφαρμογή Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 3 1. Κάθε δομή μπορεί να χρησιμοποιηθεί σε οποιοδήποτε πρόβλημα ή εφαρμογή 2. Δυναμικές είναι οι δομές που αποθηκεύονται σε συνεχόμενες θέσεις μνήμης 3. Ένας πίνακας

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

Linear Hashing. Linear vs other Hashing

Linear Hashing. Linear vs other Hashing Linear Hashing Τµήµα Πληροφορικής & Τηλ/νών, ΕΚΠΑ Υλοποίηση Συστηµάτων Βάσεων εδοµένων http://www.di.uoa.gr/~k18 Linear vs other Hashing Σεαντίθεσηµετοστατικόκατακερµατισµό, τα buckets αυξάνονται καθώς

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

Εισαγωγή στην επιστήμη των υπολογιστών. Πράξεις με μπιτ

Εισαγωγή στην επιστήμη των υπολογιστών. Πράξεις με μπιτ Εισαγωγή στην επιστήμη των υπολογιστών Πράξεις με μπιτ 1 Πράξεις με μπιτ 2 Αριθμητικές Πράξεις σε Ακέραιους Πρόσθεση, Αφαίρεση, Πολλαπλασιασμός, Διαίρεση 3 Πρόσθεση στη μορφή συμπληρώματος ως προς δύο

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

Ταξινόμηση. 1. Ταξινόμηση με Εισαγωγή 2. Ταξινόμηση με Επιλογή. Εισαγωγή στην Ανάλυση Αλγορίθμων Μάγια Σατρατζέμη

Ταξινόμηση. 1. Ταξινόμηση με Εισαγωγή 2. Ταξινόμηση με Επιλογή. Εισαγωγή στην Ανάλυση Αλγορίθμων Μάγια Σατρατζέμη Ταξινόμηση. Ταξινόμηση με Εισαγωγή. Ταξινόμηση με Επιλογή Εισαγωγή στην Ανάλυση Αλγορίθμων Μάγια Σατρατζέμη Ταξινόμηση Η ταξινόμηση sortg τοποθετεί ένα σύνολο κόμβων ή εγγραφών σε μία συγκεκριμένη διάταξη

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

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

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

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

Λειτουργικά Συστήματα. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα

Λειτουργικά Συστήματα. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα Λειτουργικά Συστήματα Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα Στέργιος Παλαμάς, Υλικό Μαθήματος «Λειτουργικά Συστήματα», 2015-2016 Κεφάλαιο 2: Σύστημα Αρχείων Τα προγράμματα που εκτελούνται

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

d k 10 k + d k 1 10 k d d = k i=0 d i 10 i.

d k 10 k + d k 1 10 k d d = k i=0 d i 10 i. Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά και Πληροφορικής Μαθηματικά Πανεπιστήμιο ΙΙ Ιωαννίνων

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

a n + 6a n a n 2 + 8a n 3 = 0, a 0 = 1, a 1 = 2, a 2 = 8

a n + 6a n a n 2 + 8a n 3 = 0, a 0 = 1, a 1 = 2, a 2 = 8 Διακριτά Μαθηματικά Σχέσεις Αναδρομής Ι 1 / 17 a n + 6a n 1 + 12a n 2 + 8a n 3 = 0, a 0 = 1, a 1 = 2, a 2 = 8 2 / 17 a n + 6a n 1 + 12a n 2 + 8a n 3 = 0, a 0 = 1, a 1 = 2, a 2 = 8 1ος τρόπος: Εχουμε τη

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

Αριθμητική Ανάλυση & Εφαρμογές

Αριθμητική Ανάλυση & Εφαρμογές Αριθμητική Ανάλυση & Εφαρμογές Διδάσκων: Δημήτριος Ι. Φωτιάδης Τμήμα Μηχανικών Επιστήμης Υλικών Ιωάννινα 2017-2018 Υπολογισμοί και Σφάλματα Παράσταση Πραγματικών Αριθμών Συστήματα Αριθμών Παράσταση Ακέραιου

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

ΔΙΑΓΩΝΙΣΜΑ: ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΑΞΗ: Γ ΛΥΚΕΙΟΥ HM/NIA: 21/2/2016

ΔΙΑΓΩΝΙΣΜΑ: ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΑΞΗ: Γ ΛΥΚΕΙΟΥ HM/NIA: 21/2/2016 ΔΙΑΓΩΝΙΣΜΑ: ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΑΞΗ: Γ ΛΥΚΕΙΟΥ HM/NIA: 21/2/2016 ΘΕΜΑ A (Α1) Να σημειώσετε με κατάλληλο τρόπο ανάλογα με το αν θεωρείτε σωστή ή λανθασμένη κάθε μία από τις

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

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

Τμήμα Οικιακής Οικονομίας και Οικολογίας. Αναπαράσταση Αριθμών Αναπαράσταση Αριθμών Δεκαδικό και Δυαδικό Δεκαδικό σύστημα Δεκαδικό και Δυαδικό Μετατροπή Για τη μετατροπή ενός αριθμού από το δυαδικό σύστημα στο δεκαδικό, πολλαπλασιάζουμε κάθε δυαδικό ψηφίο του αριθμού

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

Κεφάλαιο 2. Συστήματα Αρίθμησης και Αναπαράσταση Πληροφορίας. Περιεχόμενα. 2.1 Αριθμητικά Συστήματα. Εισαγωγή

Κεφάλαιο 2. Συστήματα Αρίθμησης και Αναπαράσταση Πληροφορίας. Περιεχόμενα. 2.1 Αριθμητικά Συστήματα. Εισαγωγή Κεφάλαιο. Συστήματα Αρίθμησης και Αναπαράσταση Πληροφορίας Περιεχόμενα. Αριθμητικά συστήματα. Μετατροπή αριθμών από ένα σύστημα σε άλλο.3 Πράξεις στο δυαδικό σύστημα.4 Πράξεις στο δεκαεξαδικό σύστημα.5

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

Ε π ι μ έ λ ε ι α Κ Ο Λ Λ Α Σ Α Ν Τ Ω Ν Η Σ

Ε π ι μ έ λ ε ι α Κ Ο Λ Λ Α Σ Α Ν Τ Ω Ν Η Σ Ε π ι μ έ λ ε ι α Κ Ο Λ Λ Α Σ Α Ν Τ Ω Ν Η Σ 1 Συναρτήσεις Όταν αναφερόμαστε σε μια συνάρτηση, ουσιαστικά αναφερόμαστε σε μια σχέση ή εξάρτηση. Στα μαθηματικά που θα μας απασχολήσουν, με απλά λόγια, η σχέση

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

Πληροφορική 2. Δομές δεδομένων και αρχείων

Πληροφορική 2. Δομές δεδομένων και αρχείων Πληροφορική 2 Δομές δεδομένων και αρχείων 1 2 Δομή Δεδομένων (data structure) Δομή δεδομένων είναι μια συλλογή δεδομένων που έχουν μεταξύ τους μια συγκεκριμένη σχέση Παραδείγματα δομών δεδομένων Πίνακες

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

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

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

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

Α ΛΥΚΕΙΟΥ. Άσκηση 3. Να λυθεί η εξίσωση: 2(x 1) x 2. 4 x (1). Λύση. Έχουμε, για κάθε x D : x 5 12x. 2x 1 6 (1) x 4. . Συνεπώς: D.

Α ΛΥΚΕΙΟΥ. Άσκηση 3. Να λυθεί η εξίσωση: 2(x 1) x 2. 4 x (1). Λύση. Έχουμε, για κάθε x D : x 5 12x. 2x 1 6 (1) x 4. . Συνεπώς: D. Α ΛΥΚΕΙΟΥ ΕΥΚΛΕΙΔΗΣ Β 77 τ/8 Αλγεβρα Α Λυκείου ΕΞΙΣΩΣΕΙΣ ΑΝΙΣΩΣΕΙΣ Αντώνης Κυριακόπουλος - Θανάσης Μαλαφέκας Επιμέλεια: Χρήστος Λαζαρίδης, Χρήστος Τσιφάκης Στα επόμενα, με D θα συμβολίζουμε το σύνολο ορισμού

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

B = {x A : f(x) = 1}.

B = {x A : f(x) = 1}. Θεωρία Συνόλων Χειμερινό Εξάμηνο 016 017 Λύσεις 1. Χρησιμοποιώντας την Αρχή του Περιστερώνα για τους φυσικούς αριθμούς, δείξτε ότι για κάθε πεπερασμένο σύνολο A και για κάθε f : A A, αν η f είναι 1-1 τότε

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

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

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

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

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

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

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