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

Save this PDF as:
 WORD  PNG  TXT  JPG

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

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

Transcript

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

2 Κατακερµατισµός Στόχος Έχουµε ένα σύνολο από κλειδιά {Κ 0,, Κ n-1 } και θέλουµε να υλοποιήσουµε Insert() και LookUp() (ίσως και Delete()) απλά και γρήγορα στην πράξη. Ιδέα Χρησιµοποιούµε έναν πίνακα κατακερµατισµού (hash table) πίνακας T[0..m-1] µε m > n (δηλ., µέγεθος µεγαλύτερο από το πλήθος των κλειδιών που θα χειριστούµε) µια συνάρτηση κατακερµατισµού (hash function) h: K {0,, m-1}, όπου Κ είναι ο χώρος των κλειδιών. Για κάθε j, το κλειδί K j αποθηκεύεται στη θέση Τ[h(K j )]. Αν η h µπορεί να υπολογιστεί γρήγορα, σε πόσο χρόνο µπορούµε να προσπελάσουµε το κλειδί? Ποιο πρόβληµα µπορεί να δηµιουργηθεί? 2

3 Συγκρούσεις (collisions) Σύγκρουση συµβαίνει όταν για δύο κλειδιά K i, K j που είναι διαφορετικά µεταξύ τους ισχύει ότι h(k i ) = h(k j ). Θα πρέπει να οριστεί ένας τρόπος διαχείρισης συγκρούσεων ώστε να επιλυθεί η σύγκρουση και τα κλειδιά να µπορούν να βρεθούν (µε LookUp()) σε λογικό χρόνο. Χρησιµοποιούνται 2 κύριοι τρόποι: τοποθέτηση στην ίδια θέση (π.χ., σε αλυσίδα) τοποθέτηση σε άλλη θέση Καλές Συναρτήσεις Κατακερµατισµού Κάνουν καλή διασπορά των κλειδιών στον πίνακα: Αν ένα κλειδί Κ επιλέγεται τυχαία από τον χώρο κλειδιών, η πιθανότητα να ισχύει h(k) = j, θα πρέπει να είναι 1/m, ίδια για όλα τα j (δηλαδή για όλες τις θέσεις του πίνακα). Παράδειγµα h(k) = k mod m Το m δεν πρέπει να είναι δύναµη του 2. Η hash function modulo επιτυγχάνει καλή διασπορά µόνο αν ο m είναι πρώτος αριθµός. 3

4 Κατακερµατισµός Προσπέλαση 1 πρόσβαση σε κάποιο µέρος της δοµής Παράδειγµα 1η προσπέλαση για την πρόσβαση στη θέση T[i] 2η προσπέλαση για την πρόσβαση στη θέση T[j], κλπ. n: πλήθος αποθηκευµένων κλειδιών m: µέγεθος πίνακα παράγων φόρτωσης (load factor) α = n/m S(α): αναµενόµενο πλήθος προσπελάσεων για την εύρεση κλειδιού που υπάρχει στην δοµή. U(α): αναµενόµενο πλήθος προσπελάσεων για κλειδί που δεν υπάρχει στην δοµή. 4

5 Μέθοδοι ιαχείρισης Συγκρούσεων Μέθοδος αλυσίδας T[j]: δείκτης σε µια αλυσίδα η οποία περιέχει όλα τα στοιχεία µε κλειδί Κ τέτοιο ώστε h(k) = j. 5

6 Μέθοδος Αλυσίδας 6

7 Μέθοδος Αλυσίδας Για την εύρεση κλειδιού, θα χρειαστούµε 1η προσπέλαση για την πρόσβαση στον πίνακα (προκειµένου να βρεθεί η θέση του πρώτου στοιχείου της αλυσίδας), 2η προσπέλαση στο 1 ο στοιχείο της αλυσίδας, κλπ. Αν όλες οι αλυσίδες είναι µη-άδειες, τότε το αναµενόµενο µήκος αλυσίδας θα είναι α = n/m U(α) = 1 + α = 1 + n/m 7

8 Ποιος είναι ο µέσος αριθµός προσπελάσεων για επιτυχηµένη αναζήτηση, αν Το µέγεθος της αλυσίδας είναι 1? Το µέγεθος της αλυσίδας είναι 2? Το µέγεθος της αλυσίδας είναι κ? S(α) = 1 + (1+α)/2 = 3/2 +α/2. Μια επιτυχηµένη LookUp ποτέ δεν εξετάζει άδειες αλυσίδες. Ωστόσο, το µήκος της αλυσίδας µπορεί να είναι λίγο µεγαλύτερο από α: S(α) 2 + α/2 Χειρότερη περίπτωση? Ποια είναι η κατάλληλη επιλογή για το m? Πόσο εύκολα µπορούµε να υλοποιήσουµε διαγραφή? 8

9 Μέθοδος Μικτών Αλυσίδων Ιδέα: Ολόκληρη η αλυσίδα αποθηκεύεται µέσα στον πίνακα. 9

10 Μέθοδος Ανοικτής ιεύθυνσης Τα κλειδιά αποθηκεύονται στον πίνακα κατακερµατισµού, αλλά δεν χρησιµοποιούνται δείκτες (δεν σχηµατίζονται αλυσίδες). Για κάθε κλειδί ελέγχεται µια ακολουθία από θέσεις (ακολουθία αναζήτησης/εξέτασης, probe sequence). Η ακολουθία καθορίζεται βάσει κάποιου κανόνα και µπορεί να εξαρτάται και από το ίδιο το κλειδί. Η(K, p): η p-οστή θέση που ελέγχεται για το κλειδί K, όπου p = 0, 1, LookUp: Ψάξε τις διαδοχικές θέσεις στην ακολουθία αναζήτησης, µέχρι είτε να βρεθεί το κλειδί, ή να βρεθεί µια κενή θέση στον πίνακα. Στη δεύτερη περίπτωση, το κλειδί δεν υπάρχει στον πίνακα. Insert: Έλεγξε τις διαδοχικές θέσεις στην ακολουθία αναζήτησης, µέχρι είτε να βρεθεί το κλειδί, ή να βρεθεί µια κενή θέση στον πίνακα στην οποία και εισάγεται το νέο κλειδί (µπορεί να απαιτείται ανακατανοµή των κλειδιών στον πίνακα, προκειµένου να µειωθεί ο χρόνος αναζήτησης). 10

11 Μέθοδοι Καθορισµού Ακολουθιών Αναζήτησης Γραµµική Αναζήτηση Προσπέλαση 0: Η(Κ,0) = h(k) Προσπέλαση p 1: H(K,p) = (H(K,p-1)+1) mod m (δηλ., η επόµενη θέση στον πίνακα) Τι γίνεται αν ο πίνακας είναι γεµάτος? Πώς µπορούµε να συµπεράνουµε κάτι τέτοιο? 0 11

12 Γραµµική Αναζήτηση Η απόδοση της µεθόδου είναι ικανοποιητική όταν ο πίνακας δεν είναι πολύ γεµάτος. Σηµαντικότερο Πρόβληµα Φαινόµενο Συγκέντρωσης (primary clustering) ηµιουργούνται τµήµατα (cluster) στον πίνακα µε συνεχόµενες κατειληµµένες θέσεις Αυτό αποτελεί προορισµό για περαιτέρω συγκρούσεις, ενώ νέες τέτοιες συγκρούσεις οδηγούν στην αύξηση του µεγέθους του τµήµατος. Πλήθος προσπελάσεων για µη επιτυχηµένη αναζήτηση αν η συνάρτηση κατακερµατισµού επιστρέφει µια κενή θέση του πίνακα? αν η συνάρτηση κατακερµατισµού επιστρέφει µια κατειληµµένη θέση του πίνακα? Προσπάθεια βελτίωσης: Πρόσθεσε µια σταθερά c > 1 (αντί για +1), για να βρεις την επόµενη θέση στην ακολουθία. Τι αποτέλεσµα θα έχει αυτή η προσπάθεια? Βοηθάει? 12

13 Βελτιώνοντας την Γραµµική Αναζήτηση Τετραγωνική αναζήτηση Προσπέλαση 0: Η(Κ,0) = h(k); Προσπέλαση p 1: H(K,p) = (h(k) + c1 * p 2 + c2 * p) mod m. Εµφανίζεται και εδώ πρόβληµα συγκέντρωσης (δευτερεύουσα συγκέντρωση, secondary clustering) καθώς όλα τα κλειδιά που έχουν ίδια τιµή h(k) ελέγχουν για κενές τις ίδιες θέσεις. ιπλός κατακερµατισµός Προσπέλαση 0: H(Κ,0) = h(k); Προσπέλαση p 1: H(Κ, p) = (H(K, p-1) + h 2 (K)) mod m = (h(k) + p * h 2 (K)) mod m h 2 (K): ευτερεύουσα συνάρτηση κατακερµατισµού 13

14 Βελτιώνοντας την Γραµµική Αναζήτηση Παράδειγµα ιπλού Κατακερµατισµού Βασική συνάρτηση κατακερµατισµού h(k): η ηµέρα θανάτου ευτερεύουσα συνάρτηση κατακερµατισµού h 2 (K): ο µήνας θανάτου (Ιανουάριος = 1, Φεβρουάριος = 2, κλπ.) 0 m = 31 Tι συµβαίνει κατά την εισαγωγή του τελευταίου ονόµατος, W. Hooper (October 14, 1790)? 14

15 ιπλός Κατακερµατισµός Η γραµµική αναζήτηση ισοδυναµεί µε διπλό κατακερµατισµό, αν h 2 (K) = 1, κλειδί K. Η ακολουθία αναζήτησης πρέπει (τελικά) να µην περιορίζεται σε λίγες µόνον θέσεις του πίνακα. Έτσι, πρέπει: κλειδί K, h 2 (K) 0 h 2 (K) και m δεν πρέπει να έχουν κοινούς διαιρέτες Γιατί? Έστω d διαιρεί το h 2 (K) και το m. Για p = m / d: [(m/d)*h 2 (K)] mod m = [m*(h 2 (K)/d)] mod m = 0, δηλ., η θέση για p = m/d στην ακολουθία θα είναι η ίδια µε την 1η (p = 0). Επιλέγουµε τον m να είναι πρώτος αριθµός. 15

16 Απόδοση Μεθόδου ιπλού Κατακερµατισµού Έστω ότι κάθε θέση που εξετάζεται στον πίνακα κατακερµατισµού είναι ανεξάρτητη από τις υπόλοιπες θέσεις του πίνακα. Είναι αυτή η υπόθεση σωστή? Όχι, αφού: 1. ιαδοχικές θέσεις µπορεί να εξαρτώνται µε κάποιο τρόπο. 2. εν εξετάζεται η ίδια θέση 2 φορές. Θεωρώντας ότι η υπόθεση είναι σωστή, a. η πιθανότητα να επιλεγεί µια κατειληµµένη θέση είναι ίση µε τον παράγοντα φόρτωσης, b. οπότε κατά την εισαγωγή n κλειδιών σε πίνακα κατακερµατισµού µεγέθους m: η πιθανότητα σύγκρουσης σε κάθε βήµα είναι α i = i/m, i n, µετά την εισαγωγή i κλειδιών. 16

17 Απόδοση Μεθόδου ιπλού Κατακερµατισµού Αναµενόµενο πλήθος προσπελάσεων σε µη επιτυχηµένη αναζήτηση, αν n-1 κλειδιά έχουν ήδη εισαχθεί: U n -1 = 1*(1 a n-1 ) + 2*a n-1 *(1-a n-1 )+3*a n-1 2 *(1-a n-1 ) + = 1 + a n-1 + a n = 1/(1 a n-1 ) Αναµενόµενο πλήθος προσπελάσεων σε επιτυχηµένη αναζήτηση = Αναµενόµενο πλήθος προσπελάσεων για την εισαγωγή κάθε ενός από τα n κλειδιά. Αλλά, αναµενόµενο πλήθος προσπελάσεων για την εισαγωγή του i-οστού κλειδιού = αναµενόµενο πλήθος προσπελάσεων σε µη επιτυχηµένη αναζήτηση. Εποµένως: n S n = (1/n) i = 1Ui 1 n = (1/n) i= 11/(1 a i 1) n = (m/n) i= 11/( m i+ 1) = (m/n) (H m H m-n ), όπου H i = 1 + ½ + + 1/i ln i S n (m/n) (ln m ln (m-n)) = (m/n) ln(m/m-n) = (1/a n ) ln (1/(1-a n )). 17

18 Ταξινοµηµένος Κατακερµατισµός (Ordered Hashing) Αν τα κλειδιά ήταν αλφαβητικά ταξινοµηµένα θα είχαµε µείωση του χρόνου για αποτυχηµένες αναζητήσεις: Αν ένα µεγαλύτερο κλειδί από το ζητούµενο Κ προσπελαστεί τερµατίζει η αναζήτηση. Μέθοδος µε αλυσίδες ιατηρούµε τα κλειδιά στις αλυσίδες ταξινοµηµένα αλφαβητικά. Μέθοδος Ανοικτής ιεύθυνσης Τα κλειδιά πρέπει να εισαχθούν έτσι ώστε: Τα κλειδιά που προηγούνται στην ακολουθία αναζήτησης από το Κ, θα πρέπει να είναι µικρότερα από το Κ. Ιδέα Αν στην ακολουθία αναζήτησης για το κλειδί Κ δούµε κλειδί Κ > Κ, τότε αντικαθιστούµε το Κ µε το Κ και συνεχίζουµε µε την εισαγωγή του Κ βάσει της ακολουθίας αναζήτησης του Κ. 18

19 Ταξινοµηµένος Κατακερµατισµός procedure OrderedHashInsert(key K, info I, hash_ptr P) if (P->size == m) then error; /* πλήρης */ T = P->Table; pos = h(k); while (T[pos]!= NULL) do if (T[pos]->Key > K) then swap(k, T[pos]->Key); swap(i, T[pos]->Info); else if (K == T[pos]->Key) then T[pos]->Info = I; return; pos = (pos + h 2 (K)) mod m; /* ιπλός */ T[pos] = new_struct(hash_node); T[pos]->Key = K; T[pos]->Info = I; P->size++; function OrderedHashingLookUp(key K, hash_ptr P): hash_ptr T = P->Table; pos = h(k); while (T[pos]!= NULL && T[pos]->Key < K) do pos = (pos + h 2 (K)) mod m; if (T[pos]!= NULL && T[pos]->Key == K) return T[pos]; else return NULL; 19

20 Ταξινοµηµένος Κατακερµατισµός Η τελική µορφή του πίνακα κατακερµατισµού, µετά την εισαγωγή σε αυτόν (βάσει της µεθόδου του ταξινοµηµένου κατακερµατισµού) ενός συνόλου από κλειδιά, θα είναι η ίδια ανεξάρτητα από τη σειρά εισαγωγής των κλειδιών στον πίνακα. Υπόθεση Η πιθανότητα να επιλεγεί ένα συγκεκριµένο κλειδί από τον χώρο κλειδιών είναι η ίδια για όλα τα κλειδιά του χώρου. Τότε: Ο αναµενόµενος χρόνος S n για επιτυχηµένη αναζήτηση δεν αλλάζει. Ο αναµενόµενος χρόνος Un για µη επιτυχηµένη αναζήτηση γίνεται περίπου ίδιος µε S n. Άρα: S n U n (1/a n ) ln(1/(1 a n )). 20

21 Ταξινοµηµένος Κατακερµατισµός ιαγραφές Μέθοδος µε αλυσίδες Γίνεται εύκολα. Πως? Μέθοδος Ανοικτής ιεύθυνσης Ένα κλειδί δεν µπορεί να διαγραφεί αφήνοντας απλά τη θέση που κατείχε άδεια. Γιατί? Παράδειγµα Έστω ότι χρησιµοποιούµε τη µέθοδο γραµµικής αναζήτησης. Έστω ότι 2 κλειδιά µε την ίδια βασική/πρωταρχική τιµή κατακερµατισµού εισάγονται στις θέσεις j και j+1 ενός πίνακα κατακερµατισµού και στη συνέχεια αυτό στη θέση j διαγράφεται. Το άλλο θα µείνει στη θέση j+1, αλλά η LookUp() θα σταµατήσει όταν βρει τη θέση j κενή. Λάθος! Ιδέα Για κάθε θέση του πίνακα υπάρχει ένα bit, που ονοµάζεται Deleted και µπορεί να είναι είτε 0 ή 1. Αρχικά όλα αυτά τα bits είναι 0. Αν διαγράψουµε κάτι από µια θέση του πίνακα, θέτουµε το bit της θέσης αυτής σε 1. H LookUp() δεν τερµατίζει σε άδειες θέσεις για τις οποίες το Deleted bit είναι 1. 21

22 Επεκτάσιµος Κατακερµατισµός (Extendible Hashing) Είναι µέθοδος που επιτρέπει την επαύξηση ή τη συρρίκνωση ενός πίνακα κατακερµατισµού, διατηρώντας παράλληλα τους χρόνους πρόσβασης στη δοµή χαµηλούς. Χρήσιµο για την αποθήκευση δεδοµένων στη δευτερεύουσα µνήµη. Μπορεί να χρησιµοποιηθεί εναλλακτικά αντί ενός Β-δένδρου. οµή εδοµένων 2 επιπέδων: o ένας κατάλογος (directory) που αποτελεί τη δοµή υψηλού επιπέδου και o ένα σύνολο από σελίδες φύλλα (leaf pages) στις οποίες αποθηκεύονται δεδοµένα. Ο κατάλογος είναι ένας πίνακας από δείκτες στις σελίδες. Οι σελίδες φύλλα είναι σταθερού µεγέθους, π.χ., b bytes η κάθε µια. 22

23 Επεκτάσιµος Κατακερµατισµός Η συνάρτηση κατακερµατισµού απεικονίζει κλειδιά σε bit strings µήκους L. L bits: 2 L τιµές κατακερµατισµού h d (K): τα πρώτα d bits του h(k), d <= L 23

24 Επεκτάσιµος Κατακερµατισµός Μια σελίδα περιέχει όλα εκείνα τα κλειδιά των οποίων η τιµή κατακερµατισµού έχει ένα συγκεκριµένο πρόθεµα από bits. Το µήκος αυτού του προθέµατος ονοµάζεται βάθος (depth) της σελίδας. Το µέγιστο βάθος κάθε σελίδας ονοµάζεται βάθος του πίνακα κατακερµατισµού. Ο κατάλογος είναι ένας πίνακας T µε 2 D δείκτες σε σελίδες, όπου D το βάθος του πίνακα κατακερµατισµού. Εύρεση σελίδας που περιέχει το κλειδί Κ Υπολογίζουµε το h D (K); Ακολουθούµε τον δείκτη T[h D (K)]; Αν για µια σελίδα ισχύει ότι d < D, τότε 2 D-d δείκτες σε συνεχόµενες θέσεις του πίνακα T θα δείχνουν στη σελίδα αυτή. 24

25 Επεκτάσιµος Κατακερµατισµός Εισαγωγές Μια σελίδα χωράει µόνο b δεδοµένα. Αν συµβεί υπερχείλιση µιας σελίδας µε βάθος d, η σελίδα χωρίζεται σε δύο σελίδες: δηµιουργία µιας νέας σελίδας, που ονοµάζεται φιλική σελίδα (buddy page) και αύξηση του βάθους των σελίδων σε d+1. Τι αλλαγές προκαλεί η δηµιουργία της νέας σελίδας στον κατάλογο? Περιπτώσεις 1. d < D Αλλαγή απλά µερικών δεικτών στον κατάλογο, ώστε αυτοί να δείχνουν στη νέα σελίδα. 2. d = D ιπλασιασµός του µεγέθους του καταλόγου και κατάλληλη αρχικοποίηση των δεικτών. 25

26 Επεκτάσιµος Κατακερµατισµός Παράδειγµα Εισαγωγής (Υποθέτουµε ότι b = 2) (α) Εισαγωγή κλειδιού µε τιµή κατακερµατισµού (β) Εισαγωγή κλειδιού µε τιµή κατακερµατισµού

27 Επεκτάσιµος Κατακερµατισµός ιαγραφές Αν η διαγραφή κάποιων κλειδιών από µια σελίδα 2i, για κάποιο i, έχει ως αποτέλεσµα αυτή µαζί µε την (2i+1) να έχει συνολικά b κλειδιά, θα µπορούσε να γίνει συνένωση των 2 σελίδων σε 1. Γενικά αυτή η λειτουργία είναι ακριβή και δεν είναι συνετό να γίνεται συχνά. Αποδοτικότητα Η µέθοδος: είναι αποδοτική σε χρόνο προσπέλασης, αφού απαιτείται µόνο µια πρόσβαση στην κύρια µνήµη και µια στη δευτερεύουσα για να επιτευχθεί η προσπέλαση του ζητούµενου κλειδιού (και δεδοµένου). δεν είναι αρκετά αποδοτική σε µνήµη, αφού πολλές από τις σελίδες µπορεί να είναι σχεδόν άδειες και αφού ο κατάλογος συνήθως περιέχει παραπάνω από έναν δείκτες που δείχνουν στην ίδια σελίδα. 27

28 Συναρτήσεις Κατακερµατισµού Οι µέθοδοι κατακερµατισµού που συζητήθηκαν έχουν πολύ καλή «µέση» απόδοση µόνο αν οι τιµές κατακερµατισµού των κλειδιών είναι οµοιόµορφα κατανεµηµένες (για το µέγεθος του πίνακα κατακερµατισµού). Στη χειρότερη περίπτωση τα πράγµατα µπορούν να είναι πολύ άσχηµα (γραµµική πολυπλοκότητα). Ενδέχεται, η συνάρτηση κατακερµατισµού να µην επιτυγχάνει καλή κατανοµή των κλειδιών γενικά ή για συγκεκριµένα σύνολα κλειδιών. Κατακερµατισµός µε ιαίρεση h(k) = K mod m m: µέγεθος πίνακα κατακερµατισµού p Αν Κ αλφαριθµητικό, υπολογίζουµε το όπου o p: µήκος του αλφαριθµητικού 1 i= 0 cir i, o c i : κωδικός (ASCII) του i-οστού χαρακτήρα του Κ o r: το πλήθος διαφορετικών χαρακτήρων στον κώδικα (συνήθως 128 ή 256) 28

29 Κατακερµατισµός µε ιαίρεση Προσοχή Τα κλειδιά µπορεί να µην είναι τυχαία Π.χ. Αν το m είναι r ή r 2, το αποτέλεσµα της διαίρεσης είναι ο κωδικός του ενός ή των δύο τελευταίων χαρακτήρων. Από τα γράµµατα του αλφάβητου είναι πολύ λίγα αυτά που συνήθως συναντούνται ως τελευταίοι χαρακτήρες λέξεων. Αν τα m και r είναι άρτια, η τιµή h(k) θα είναι άρτια ή περιττή ανάλογα µε το αν ο τελευταίος χαρακτήρας στο αλφαριθµητικό έχει περιττό ή άρτιο κωδικό. Καλή Συνάρτηση Κατακερµατισµού Αποφυγή συστηµατικών συγκρούσεων ακόµη και σε περιπτώσεις που τα κλειδιά επιλέγονται µε ένα συστηµατικά µη τυχαίο τρόπο. 29

30 Κατακερµατισµός µε ιαίρεση Λύση m να είναι πρώτος. Επίσης, είναι καλύτερο το m να µην διαιρεί τους r k +a, r k -1 για µικρές σταθερές k και a. Ενδεικτικά, έστω m = r-1 και έστω ότι r-1 είναι πρώτος: p 1 i= 0 ir c i p mod (r-1) = 1 i= 0 ( p = ( cir I mod (r-1)) mod (r-1) 1 i= 0 c i )mod (r-1) Μπορεί να αποδειχθεί επαγωγικά ότι για κάθε i, r i i = 1 + (r-1) 1 j= 0 r j. Άρα r i i mod (r-1) = (1 + (r-1) 1 j= 0 r j ) mod (r-1) = 1. ηλαδή, αν m = r-1, όλες οι µεταθέσεις του ίδιου συνόλου χαρακτήρων (π.χ., ABC, BCA, CBA, κλπ.) έχουν την ίδια τιµή κατακερµατισµού. 30

31 Συναρτήσεις Κατακερµατισµού Τέλειος Κατακερµατισµός Στατικών εδοµένων Αν γνωρίζαµε εξ αρχής τα κλειδιά που θέλουµε να αποθηκευτούν, ίσως να µπορούσαµε να σχεδιάσουµε µια συνάρτηση κατακερµατισµού που να αποφεύγει εντελώς τις συγκρούσεις. Έχουν αναπτυχθεί διάφορες τεχνικές για την εύρεση τέλειων συναρτήσεων κατακερµατισµού για δεδοµένα σύνολα κλειδιών. Η µέθοδος έχει περιορισµένη εφαρµογή, αφού συνήθως το σύνολο των κλειδιών δεν είναι γνωστό και τα δεδοµένα αλλάζουν δυναµικά. 31

32 Συναρτήσεις Κατακερµατισµού Ιδέα Η συνάρτηση κατακερµατισµού επιλέγεται τυχαία από ένα σύνολο συναρτήσεων κατακερµατισµού (κατά την εκτέλεση). Θετικά Η πιθανότητα επιλογής µιας «κακής» συνάρτησης κατακερµατισµού είναι µικρή. Σε επόµενη εκτέλεση του προγράµµατος, η πιθανότητα τα πράγµατα να πάνε και πάλι άσχηµα είναι µικρή. Ακόµη και αν τα κλειδιά που παρέχονται στο σύστηµα είναι πολύ προσεκτικά επιλεγµένα από έναν αντίπαλο (ώστε να αποτελούν άσχηµη είσοδο), η µέθοδος αυτή δουλεύει αποδοτικά. Αρνητικό Όχι επανάληψη προηγούµενων αποτελεσµάτων, σε περίπτωση που το θέλουµε (π.χ., αναπαραγωγή κάποιας κατάστασης σφάλµατος). 32

33 Καθολικές Κλάσεις Συναρτήσεων Κατακερµατισµού Κ: χώρος κλειδιών m: µέγεθος πίνακα κατακερµατισµού H: σύνολο συναρτήσεων από το Κ στο {0,...,m-1} Ορισµός Η κλάση συναρτήσεων Η λέγεται καθολική αν για κάθε ζεύγος κλειδιών x,y, όπου x y, ισχύει ότι: {h H: h(x) = h(y)} / H 1/m. ηλαδή, για κάθε ζεύγος διαφορετικών κλειδιών, µόνο ένα ποσοστό 1/m (το πολύ) των συναρτήσεων της κλάσης µπορεί να οδηγεί σε σύγκρουση κατά την αποθήκευση του ζεύγους. Εάν διαλέξουµε µια συνάρτηση από την κλάση τυχαία, η πιθανότητα ένα ζεύγος κλειδιών να οδηγήσει σε σύγκρουση είναι 1/m. 33

34 Καθολικές Κλάσεις Συναρτήσεων Κατακερµατισµού Θεώρηµα Έστω ότι Κ = k είναι πρώτος αριθµός, και έστω ότι το K περιέχει (ως κλειδιά) τους ακεραίους 0,..., k-1. Για κάθε αριθµό a {1,, k-1} και b {0,, k-1} έστω: Τότε, η h a,b (x) = ((ax+b) mod k) mod m H = {h a,b : 1 a < k και 0 b < k } είναι καθολική κλάση συναρτήσεων. Παρατηρήσεις Το µέγεθος m του πίνακα µπορεί να είναι οποιοσδήποτε ακέραιος και όχι απαραίτητα πρώτος, ούτε καν περιττός. Το m µπορεί να είναι ακόµη και δύναµη του 2. Η µέθοδος µπορεί να χρησιµοποιηθεί σε συνδυασµό µε τη µέθοδο του επεκτάσιµου κατακερµατισµού. 34

Ενότητα 6 Κατακερµατισµός

Ενότητα 6 Κατακερµατισµός Ενότητα 6 Κατακερµατισµός ΗΥ24 - Παναγιώτα Φατούρου Κατακερµατισµός - Αρχές ειτουργίας Έστω S U ένα σύνολο κλειδιών προς αποθήκευση. Βασική Ιδέα «Αν το κλειδί k S ενός στοιχείου s ήταν ακέραιος Type LookUp(array

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

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

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

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

Ενότητα 6 Κατακερµατισµός

Ενότητα 6 Κατακερµατισµός Ενότητα 6 Κατακερµατισµός ΗΥ240 - Παναγιώτα Φατούρου Κατακερµατισµός - Αρχές ειτουργίας Έστω U το σύνολο των φυσικών αριθµών και S U ένα σύνολο κλειδιών προς αποθήκευση. Βασική Ιδέα «Αφού το κλειδί k S

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ενότητα 7 Κατακερµατισµός

Ενότητα 7 Κατακερµατισµός Ενότητα 7 Κατακερµατισµός ΗΥ24 - Παναγιώτα Φατούρου Κατακερµατισµός - Αρχές ειτουργίας Type LookUp(set S, Key k) { Έστω S U το προς αποθήκευση σύνολο κλειδιών. return(h[k]); Βασική Ιδέα «Αν το κλειδί k

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Advanced Data Indexing

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Insert(K,I,S) Delete(K,S)

Insert(K,I,S) Delete(K,S) ΕΝΟΤΗΤΑ 5 ΣΥΝΟΛΑ & ΛΕΞΙΚΑ Φατούρου Παναγιώτα 1 Σύνολα (Sets) Τα µέλη ενός συνόλου προέρχονται από κάποιο χώρο αντικειµένων/στοιχείων (π.χ., σύνολα αριθµών, λέξεων, ζευγών αποτελούµενα από έναν αριθµό και

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

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

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

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

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 αυξάνονται καθώς

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

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

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

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

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

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

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

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

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

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

Advanced Data Indexing

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Επιµέλεια Θοδωρής Πιερράτος

Επιµέλεια Θοδωρής Πιερράτος εδοµένα οµές δεδοµένων και αλγόριθµοι Τα δεδοµένα είναι ακατέργαστα γεγονότα. Η συλλογή των ακατέργαστων δεδοµένων και ο συσχετισµός τους δίνει ως αποτέλεσµα την πληροφορία. Η µέτρηση, η κωδικοποίηση,

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

ΕΝΟΤΗΤΑ 7 ΟΥΡΕΣ ΠΡΟΤΕΡΑΙΟΤΗΤΑΣ ΣΩΡΟΙ

ΕΝΟΤΗΤΑ 7 ΟΥΡΕΣ ΠΡΟΤΕΡΑΙΟΤΗΤΑΣ ΣΩΡΟΙ ΕΝΟΤΗΤΑ 7 ΟΥΡΕΣ ΠΡΟΤΕΡΑΙΟΤΗΤΑΣ ΣΩΡΟΙ Ουρές Προτεραιότητας (Priority Queues) Θεωρούµε ότι τα προς αποθήκευση στοιχεία έχουν κάποια διάταξη (καθένα έχει µια προτεραιότητα). Τα προς αποθήκευση στοιχεία είναι

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

Θεωρητικό Μέρος. int rec(int n) { int n1, n2; if (n <= 5) then return n; else { n1 = rec(n-5); n2 = rec(n-3); return (n1+n2); } }

Θεωρητικό Μέρος. int rec(int n) { int n1, n2; if (n <= 5) then return n; else { n1 = rec(n-5); n2 = rec(n-3); return (n1+n2); } } Πανεπιστήµιο Ιωαννίνων, Τµήµα Πληροφορικής 2 Νοεµβρίου 2005 Η/Υ 432: οµές εδοµένων Χειµερινό Εξάµηνο Ακαδηµαϊκού Έτους 2005-2006 Παναγιώτα Φατούρου Ηµεροµηνία Παράδοσης 1 ο Σετ Ασκήσεων Θεωρητικό Μέρος:

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

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

Προγραµµατισµός Ι (ΗΥ120) Προγραµµατισµός Ι (ΗΥ120) Διάλεξη 15: Διασυνδεµένες Δοµές - Λίστες Δοµές δεδοµένων! Ένα τυπικό πρόγραµµα επεξεργάζεται δεδοµένα Πώς θα τα διατάξουµε? 2 Τι λειτουργίες θέλουµε να εκτελέσουµε? Πώς θα υλοποιήσουµε

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

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

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

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

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

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

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

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

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

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

Αριθμοθεωρητικοί Αλγόριθμοι

Αριθμοθεωρητικοί Αλγόριθμοι Αλγόριθμοι που επεξεργάζονται μεγάλους ακέραιους αριθμούς Μέγεθος εισόδου: Αριθμός bits που απαιτούνται για την αναπαράσταση των ακεραίων. Έστω ότι ένας αλγόριθμος λαμβάνει ως είσοδο έναν ακέραιο Ο αλγόριθμος

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

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

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

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

Το εσωτερικό ενός Σ Β

Το εσωτερικό ενός Σ Β Επεξεργασία Ερωτήσεων 1 Εισαγωγή ΜΕΡΟΣ 1 Γενική Εικόνα του Μαθήµατος Μοντελοποίηση (Μοντέλο Ο/Σ, Σχεσιακό, Λογικός Σχεδιασµός) Προγραµµατισµός (Σχεσιακή Άλγεβρα, SQL) ηµιουργία/κατασκευή Εισαγωγή εδοµένων

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

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

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

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

Κρυπτογραφία. Έλεγχος πρώτων αριθών-παραγοντοποίηση. Διαφάνειες: Άρης Παγουρτζής Πέτρος Ποτίκας

Κρυπτογραφία. Έλεγχος πρώτων αριθών-παραγοντοποίηση. Διαφάνειες: Άρης Παγουρτζής Πέτρος Ποτίκας Κρυπτογραφία Έλεγχος πρώτων αριθών-παραγοντοποίηση Διαφάνειες: Άρης Παγουρτζής Πέτρος Ποτίκας Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Σχολή ΗΜΜΥ ΕΜΠ Κρυπτογραφία

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

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

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

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

Αριθµοθεωρητικοί Αλγόριθµοι και το. To Κρυπτοσύστηµα RSA

Αριθµοθεωρητικοί Αλγόριθµοι και το. To Κρυπτοσύστηµα RSA Αριθµοθεωρητικοί Αλγόριθµοι και το Κρυπτοσύστηµα RSA Στην ενότητα αυτή θα µελετηθούν τα εξής θέµατα: Υπολογισµός Μέγιστου Κοινού ιαιρέτη Αλγόριθµος του Ευκλείδη Κλάσεις Ισοδυναµίας και Αριθµητική modulo

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

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

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

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

1 ο ΦΥΛΛΑΔΙΟ ΑΣΚΗΣΕΩΝ - ΑΛΓΟΡΙΘΜΟΙ

1 ο ΦΥΛΛΑΔΙΟ ΑΣΚΗΣΕΩΝ - ΑΛΓΟΡΙΘΜΟΙ Δ.Π.Θ. - Πολυτεχνική Σχολή Τμήμα Μηχανικών Παραγωγής & Διοίκησης Ακαδ. έτος 2017-2018 Τομέας Συστημάτων Παραγωγής Εξάμηνο A Αναπληρωτής Καθηγητής Στέφανος Δ. Κατσαβούνης 03 ΟΚΤ 2017 ΜΑΘΗΜΑ : ΕΙΣΑΓΩΓΗ ΣΤΗΝ

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

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

Δοµές Δεδοµένων. 15η Διάλεξη Δέντρα Δυαδικής Αναζήτησης και Κατακερµατισµός. Ε. Μαρκάκης Δοµές Δεδοµένων 15η Διάλεξη Δέντρα Δυαδικής Αναζήτησης και Κατακερµατισµός Ε. Μαρκάκης Περίληψη Υλοποιήσεις άλλων λειτουργιών σε ΔΔΑ: Επιλογή k-οστού µικρότερου Διαµέριση Αφαίρεση στοιχείου Ένωση 2 δέντρων

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

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

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

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

Πρόβληµα 2 (15 µονάδες)

Πρόβληµα 2 (15 µονάδες) ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΑΘΗΜΑ: ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΕΦΑΡΜΟΓΕΣ, 2013-2014 ΔΙΔΑΣΚΩΝ: Ε. Μαρκάκης Πρόβληµα 1 (5 µονάδες) 2 η Σειρά Ασκήσεων Προθεσµία Παράδοσης: 19/1/2014 Υπολογίστε

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

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

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

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

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

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

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

ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ. Προτεινοµενες Ασκησεις - Φυλλαδιο 9

ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ. Προτεινοµενες Ασκησεις - Φυλλαδιο 9 ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ Τµηµα Β Προτεινοµενες Ασκησεις - Φυλλαδιο 9 ιδασκων: Α. Μπεληγιάννης Ιστοσελιδα Μαθηµατος : http://users.uoi.gr/abeligia/numbertheory/nt2015/nt2015.html Παρασκευή 29 Μαίου 2015 Ασκηση 1.

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

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

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

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

Βάσεις εδοµένων Ευαγγελία Πιτουρά 2

Βάσεις εδοµένων Ευαγγελία Πιτουρά 2 Ευρετήρια Βάσεις εδοµένων 2002-2003 Ευαγγελία Πιτουρά 1 Ευρετήρια Ένα ευρετήριο (index) είναι µια βοηθητική δοµή αρχείου που κάνει πιο αποδοτική την αναζήτηση µιας εγγραφής σε ένα αρχείο Το ευρετήριο καθορίζεται

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

Μάθημα 8: Διαχείριση Μνήμης

Μάθημα 8: Διαχείριση Μνήμης Μάθημα 8: Διαχείριση Μνήμης 8.1 Κύρια και δευτερεύουσα μνήμη Κάθε μονάδα ενός υπολογιστή που χρησιμεύει για τη μόνιμη ή προσωρινή αποθήκευση δεδομένων ανήκει στην μνήμη (memory) του υπολογιστή. Οι μνήμες

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

ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ Ασκησεις - Φυλλαδιο 9

ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ Ασκησεις - Φυλλαδιο 9 ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ Ασκησεις - Φυλλαδιο 9 ιδασκοντες: Ν. Μαρµαρίδης - Α. Μπεληγιάννης Ιστοσελιδα Μαθηµατος : http://users.uoi.gr/abeligia/numbertheory/nt2014/nt2014.html https://sites.google.com/site/maths4edu/home/14

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

Αλγόριθμοι - Τμήμα Πληροφορικής ΑΠΘ -4ο εξάμηνο 1

Αλγόριθμοι - Τμήμα Πληροφορικής ΑΠΘ -4ο εξάμηνο 1 Αλγόριθμοι Χωρικοί-χρονικοί συμβιβασμοί http://delab.csd.auth.gr/courses/algorithms/ Αλγόριθμοι - Τμήμα Πληροφορικής ΑΠΘ -4ο εξάμηνο 1 Χωρικοί-χρονικοί συμβιβασμοί Σε πολλά προβλήματα, ο επιπλέον χώρος

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

Τυχαιοκρατικοί Αλγόριθμοι

Τυχαιοκρατικοί Αλγόριθμοι Πιθανότητες και Αλγόριθμοι Ανάλυση μέσης περίπτωσης Μελέτα τη συμπεριφορά ενός αλγορίθμου σε μια «μέση» είσοδο (ως προς κάποια κατανομή) Τυχαιοκρατικός αλγόριθμος Λαμβάνει τυχαίες αποφάσεις καθώς επεξεργάζεται

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

Γ. Κορίλη Αλγόριθµοι ροµολόγησης

Γ. Κορίλη Αλγόριθµοι ροµολόγησης - Γ. Κορίλη Αλγόριθµοι ροµολόγησης http://www.seas.upenn.edu/~tcom50/lectures/lecture.pdf ροµολόγηση σε ίκτυα εδοµένων Αναπαράσταση ικτύου µε Γράφο Μη Κατευθυνόµενοι Γράφοι Εκτεταµένα έντρα Κατευθυνόµενοι

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

ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ. Ασκησεις - Επανάληψης. ιδασκων: Α. Μπεληγιάννης Ιστοσελιδα Μαθηµατος :

ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ. Ασκησεις - Επανάληψης. ιδασκων: Α. Μπεληγιάννης Ιστοσελιδα Μαθηµατος : ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ Τµηµα Β Ασκησεις - Επανάληψης ιδασκων: Α. Μπεληγιάννης Ιστοσελιδα Μαθηµατος : http://users.uoi.gr/abeligia/numbertheory/nt015b/nt015b.html Πέµπτη 1 Ιανουαρίου 016 Ασκηση 1. (1) Να λυθεί

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

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Πίνακες Συµβόλων Κεφάλαιο 12 ( ) Ε. Μαρκάκης Επίκουρος Καθηγητής

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Πίνακες Συµβόλων Κεφάλαιο 12 ( ) Ε. Μαρκάκης Επίκουρος Καθηγητής ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Πίνακες Συµβόλων Κεφάλαιο 12 (12.1-12.4) Ε. Μαρκάκης Επίκουρος Καθηγητής Περίληψη Πίνακες συµβόλων Διεπαφή πίνακα συµβόλων Αναζήτηση µε αριθµοδείκτη Ακολουθιακή αναζήτηση Δυαδική αναζήτηση

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

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

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

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

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

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

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

5. Γεννήτριες Τυχαίων Αριθµών.

5. Γεννήτριες Τυχαίων Αριθµών. 5. Γεννήτριες Τυχαίων Αριθµών. 5.1. Εισαγωγή. Στο Κεφάλαιο αυτό θα δούµε πώς µπορούµε να δηµιουργήσουµε τυχαίους αριθµούς από την οµοιόµορφη κατανοµή στο διάστηµα [0,1]. Την κατανοµή αυτή, συµβολίζουµε

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

Τα δεδοµένα συνήθως αποθηκεύονται σε αρχεία στο δίσκο Για να επεξεργαστούµε τα δεδοµένα θα πρέπει αυτά να βρίσκονται στη

Τα δεδοµένα συνήθως αποθηκεύονται σε αρχεία στο δίσκο Για να επεξεργαστούµε τα δεδοµένα θα πρέπει αυτά να βρίσκονται στη Ευρετήρια 1 Αρχεία Τα δεδοµένα συνήθως αποθηκεύονται σε αρχεία στο δίσκο Για να επεξεργαστούµε τα δεδοµένα θα πρέπει αυτά να βρίσκονται στη µνήµη. Η µεταφορά δεδοµένων από το δίσκο στη µνήµη και από τη

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 23: οµές εδοµένων και Αλγόριθµοι Ενδιάµεση Εξέταση Ηµεροµηνία : ευτέρα, 3 Νοεµβρίου 2008 ιάρκεια : 2.00-4.00 ιδάσκουσα : Άννα Φιλίππου Ονοµατεπώνυµο: ΣΚΕΛΕΤΟΙ

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

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

ΠΛΗΡΟΦΟΡΙΑΚΑ & ΤΗΛΕΠΙΚΟΙΝΩΝΙΑΚΑ ΣΥΣΤΗΜΑΤΑ Οικονοµικό Πανεπιστήµιο Αθηνών Τµήµα ιοικητικής Επιστήµης & Τεχνολογίας ΠΛΗΡΟΦΟΡΙΑΚΑ & ΤΗΛΕΠΙΚΟΙΝΩΝΙΑΚΑ ΣΥΣΤΗΜΑΤΑ Κεφάλαιο 9 οµές εδοµένων σε C Γιώργος Γιαγλής Περίληψη Κεφαλαίου 9 οµές εδοµένων υναµικές

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

ΕΝΟΤΗΤΑ 9 ΕΝΩΣΗ ΞΕΝΩΝ ΣΥΝΟΛΩΝ ( ΟΜΕΣ UNION-FIND)

ΕΝΟΤΗΤΑ 9 ΕΝΩΣΗ ΞΕΝΩΝ ΣΥΝΟΛΩΝ ( ΟΜΕΣ UNION-FIND) ΕΝΟΤΗΤΑ 9 ΕΝΩΣΗ ΞΕΝΩΝ ΣΥΝΟΛΩΝ ( ΟΜΕΣ UNION-FIND) Ένωση Ξένων Συνόλων (Disjoint Sets with Union) S 1,, S k : ξένα υποσύνολα ενός συνόλου U δηλ., S i S j =, αν i j, και S 1 S k = U. Λειτουργίες που θέλουµε

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

Ψηφιακοί Υπολογιστές

Ψηφιακοί Υπολογιστές 1 η Θεµατική Ενότητα : υαδικά Συστήµατα Ψηφιακοί Υπολογιστές Παλαιότερα οι υπολογιστές χρησιµοποιούνταν για αριθµητικούς υπολογισµούς Ψηφίο (digit) Ψηφιακοί Υπολογιστές Σήµατα (signals) : διακριτά στοιχεία

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

ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ. Λυσεις Ασκησεων - Φυλλαδιο 9

ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ. Λυσεις Ασκησεων - Φυλλαδιο 9 ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ Τµηµα Β Λυσεις Ασκησεων - Φυλλαδιο 9 ιδασκων: Α. Μπεληγιάννης Ιστοσελιδα Μαθηµατος : http://users.uoi.gr/abeligia/numbertheory/nt2016/nt2016.html Πέµπτη 12 Ιανουαρίου 2017 Ασκηση 1. Εστω

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

ΠΛΕ075: Προηγμένη Σχεδίαση Αλγορίθμων και Δομών Δεδομένων. Λουκάς Γεωργιάδης

ΠΛΕ075: Προηγμένη Σχεδίαση Αλγορίθμων και Δομών Δεδομένων. Λουκάς Γεωργιάδης ΠΛΕ075: Προηγμένη Σχεδίαση Αλγορίθμων και Δομών Δεδομένων Λουκάς Γεωργιάδης loukas@cs.uoi.gr www.cs.uoi.gr/~loukas Βασικές έννοιες και εφαρμογές Αλγόριθμος: Μέθοδος για την επίλυση ενός προβλήματος Δομή

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

(CLR, κεφάλαιο 32) Στην ενότητα αυτή θα µελετηθούν τα εξής θέµατα: Παραστάσεις πολυωνύµων Πολυωνυµική Παρεµβολή ιακριτός Μετασχηµατισµός Fourier

(CLR, κεφάλαιο 32) Στην ενότητα αυτή θα µελετηθούν τα εξής θέµατα: Παραστάσεις πολυωνύµων Πολυωνυµική Παρεµβολή ιακριτός Μετασχηµατισµός Fourier Ταχύς Μετασχηµατισµός Fourier CLR, κεφάλαιο 3 Στην ενότητα αυτή θα µελετηθούν τα εξής θέµατα: Παραστάσεις πολυωνύµων Πολυωνυµική Παρεµβολή ιακριτός Μετασχηµατισµός Fourier Ταχύς Μετασχηµατισµός Fourier

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

επιµέλεια Θοδωρής Πιερράτος

επιµέλεια Θοδωρής Πιερράτος Ερωτήσεις Σωστό Λάθος 1. Οι διαστάσεις ενός πίνακα δεν µπορούν να µεταβάλλονται κατά την εκτέλση ενός αλγόριθµου. 2. Ο πίνακας είναι στατική δοµή δεδοµένων. 3. Ένας πίνακας δυο στηλών µπορεί να περιέχει

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

ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ. Ασκησεις Επαναληψης. ιδασκων: Α. Μπεληγιάννης Ιστοσελιδα Μαθηµατος :

ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ. Ασκησεις Επαναληψης. ιδασκων: Α. Μπεληγιάννης Ιστοσελιδα Μαθηµατος : ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ Τµηµα Β Ασκησεις Επαναληψης ιδασκων: Α. Μπεληγιάννης Ιστοσελιδα Μαθηµατος : http://users.uoi.gr/abeligia/numbertheory/nt015/nt015.html Τρίτη Ιουνίου 015 Ασκηση 1. (1) Να λυθεί η γραµµική

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

Ενότητα 9 Ξένα Σύνολα που υποστηρίζουν τη λειτουργία της Ένωσης (Union-Find)

Ενότητα 9 Ξένα Σύνολα που υποστηρίζουν τη λειτουργία της Ένωσης (Union-Find) Ενότητα 9 Ξένα Σύνολα που υποστηρίζουν τη (Union-Find) ΗΥ240 - Παναγιώτα Φατούρου 1 Ξένα Σύνολα που υποστηρίζουν τη λειτουργία της Ένωσης Έστω ότι S 1,, S k είναι ξένα υποσύνολα ενός συνόλου U, δηλαδή

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

Εισαγωγή στην Πληροφορική. Α σ κ ή σ ε ι ς σ τ η ν ι α χ ε ί ρ ι σ η Μ ν ή µ η ς. Αντώνης Σταµατάκης

Εισαγωγή στην Πληροφορική. Α σ κ ή σ ε ι ς σ τ η ν ι α χ ε ί ρ ι σ η Μ ν ή µ η ς. Αντώνης Σταµατάκης Εισαγωγή στην Πληροφορική Α σ κ ή σ ε ι ς σ τ η ν ι α χ ε ί ρ ι σ η Μ ν ή µ η ς Αντώνης Σταµατάκης Μονάδες µέτρησης µνήµης Η βασική µονάδα µέτρησης της µνήµης στα υπολογιστικά συστήµατα είναι το µπάιτ

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

int array[10]; double arr[5]; char pin[20]; Προγραµµατισµός Ι

int array[10]; double arr[5]; char pin[20]; Προγραµµατισµός Ι Εισαγωγή Στον Προγραµµατισµό «C» Πίνακες Πανεπιστήµιο Πελοποννήσου Τµήµα Πληροφορικής & Τηλεπικοινωνιών Νικόλαος Δ. Τσελίκας Νικόλαος Προγραµµατισµός Δ. Τσελίκας Ι Πίνακες στη C Ένας πίνακας στη C είναι

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

ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ Ασκησεις Επαναληψης

ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ Ασκησεις Επαναληψης ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ Ασκησεις Επαναληψης ιδασκοντες: Α. Μπεληγιάννης - Σ. Παπαδάκης Ιστοσελιδα Μαθηµατος : http://users.uoi.gr/abeligia/numbertheory/nt.html Τετάρτη 22 Μαΐου 2013 Ασκηση 1. (1) Να λυθεί η γραµµική

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

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

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

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

Σ ή. : υαδικά. Ε ό. ή Ενότητα

Σ ή. : υαδικά. Ε ό. ή Ενότητα 1η Θεµατική Θ ή Ενότητα Ε ό : υαδικά δ ά Συστήµατα Σ ή Μονάδα Ελέγχου Ψηφιακοί Υπολογιστές Αριθµητική Μονάδα Κρυφή Μνήµη Μονάδα Μνήµης ιαχείριση Μονάδων Ι/Ο ίσκοι Οθόνες ικτυακές Μονάδες Πληκτρολόγιο,

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

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

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

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

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

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

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

Εισαγωγή. Γενική Εικόνα του Μαθήµατος. Το εσωτερικό ενός Σ Β. Εισαγωγή. Εισαγωγή Σ Β Σ Β. Αρχεία ευρετηρίου Κατάλογος συστήµατος Αρχεία δεδοµένων

Εισαγωγή. Γενική Εικόνα του Μαθήµατος. Το εσωτερικό ενός Σ Β. Εισαγωγή. Εισαγωγή Σ Β Σ Β. Αρχεία ευρετηρίου Κατάλογος συστήµατος Αρχεία δεδοµένων Βάσεις εδοµένων 2003-2004 Ευαγγελία Πιτουρά 1 ΜΕΡΟΣ 1 Γενική Εικόνα του Μαθήµατος Επεξεργασία Ερωτήσεων Μοντελοποίηση (Μοντέλο Ο/Σ, Σχεσιακό, Λογικός Σχεδιασµός) Προγραµµατισµός (Σχεσιακή Άλγεβρα, SQL)

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