ΕΝΟΤΗΤΑ 8 KATAKEΡΜΑΤΙΣΜΟΣ (HASHING)
|
|
- Λήδα Ζαΐμης
- 8 χρόνια πριν
- Προβολές:
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 Κατακερµατισµός ΗΥ24 - Παναγιώτα Φατούρου Κατακερµατισµός - Αρχές ειτουργίας Έστω S U ένα σύνολο κλειδιών προς αποθήκευση. Βασική Ιδέα «Αν το κλειδί k S ενός στοιχείου s ήταν ακέραιος Type LookUp(array
Εξωτερική Αναζήτηση. Ιεραρχία Μνήμης Υπολογιστή. Εξωτερική Μνήμη. Εσωτερική Μνήμη. Κρυφή Μνήμη (Cache) Καταχωρητές (Registers) μεγαλύτερη ταχύτητα
Ιεραρχία Μνήμης Υπολογιστή Εξωτερική Μνήμη Εσωτερική Μνήμη Κρυφή Μνήμη (Cache) μεγαλύτερη χωρητικότητα Καταχωρητές (Registers) Κεντρική Μονάδα (CPU) μεγαλύτερη ταχύτητα Πολλές σημαντικές εφαρμογές διαχειρίζονται
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δομές δεδομένων. Ενότητα 6η: Κατακερματισμός Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών
ΕΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Δομές δεδομένων Ενότητα 6η: Κατακερματισμός Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών Ενότητα 6 Κατακερματισμός ΗΥ240 - Παναγιώτα Φατούρου 2 Κατακερματισμός -
Ενότητα 6 Κατακερµατισµός
Ενότητα 6 Κατακερµατισµός ΗΥ240 - Παναγιώτα Φατούρου Κατακερµατισµός - Αρχές ειτουργίας Έστω U το σύνολο των φυσικών αριθµών και S U ένα σύνολο κλειδιών προς αποθήκευση. Βασική Ιδέα «Αφού το κλειδί k S
Πίνακες Συμβόλων. εισαγωγή αναζήτηση επιλογή. εισαγωγή. αναζήτηση
Πίνακες Συμβόλων χειρότερη περίπτωση μέση περίπτωση εισαγωγή αναζήτηση επιλογή εισαγωγή αναζήτηση διατεταγμένος πίνακας διατεταγμένη λίστα μη διατεταγμένος πίνακας μη διατεταγμένη λίστα δένδρο αναζήτησης
Δομές Αναζήτησης. εισαγωγή αναζήτηση επιλογή. εισαγωγή. αναζήτηση
Δομές Αναζήτησης χειρότερη περίπτωση μέση περίπτωση εισαγωγή αναζήτηση επιλογή εισαγωγή αναζήτηση διατεταγμένος πίνακας διατεταγμένη λίστα μη διατεταγμένος πίνακας μη διατεταγμένη λίστα δένδρο αναζήτησης
Οργάνωση αρχείων: πως είναι τοποθετηµένες οι εγγραφές ενός αρχείου όταν αποθηκεύονται στο δίσκο
Κατακερµατισµός 1 Οργάνωση Αρχείων (σύνοψη) Οργάνωση αρχείων: πως είναι τοποθετηµένες οι εγγραφές ενός αρχείου όταν αποθηκεύονται στο δίσκο 1. Αρχεία Σωρού 2. Ταξινοµηµένα Αρχεία Φυσική διάταξη των εγγραφών
Τα δεδομένα (περιεχόμενο) μιας βάσης δεδομένων αποθηκεύεται στο δίσκο
Κατακερματισμός 1 Αποθήκευση εδομένων (σύνοψη) Τα δεδομένα (περιεχόμενο) μιας βάσης δεδομένων αποθηκεύεται στο δίσκο Παραδοσιακά, μία σχέση (πίνακας/στιγμιότυπο) αποθηκεύεται σε ένα αρχείο Αρχείο δεδομένων
Δυναμικά Σύνολα. Δυναμικό σύνολο. Tα στοιχεία του μεταβάλλονται μέσω εντολών εισαγωγής και διαγραφής. διαγραφή. εισαγωγή
Δυναμικά Σύνολα Δυναμικό σύνολο Tα στοιχεία του μεταβάλλονται μέσω εντολών εισαγωγής και διαγραφής διαγραφή εισαγωγή Δυναμικά Σύνολα Δυναμικό σύνολο Tα στοιχεία του μεταβάλλονται μέσω εντολών εισαγωγής
Δυναμικά Σύνολα. Δυναμικό σύνολο. Tα στοιχεία του μεταβάλλονται μέσω εντολών εισαγωγής και διαγραφής. διαγραφή. εισαγωγή
Δυναμικά Σύνολα Δυναμικό σύνολο Tα στοιχεία του μεταβάλλονται μέσω εντολών εισαγωγής και διαγραφής διαγραφή εισαγωγή Δυναμικά Σύνολα Δυναμικό σύνολο Tα στοιχεία του μεταβάλλονται μέσω εντολών εισαγωγής
Δυναμικά Σύνολα. Δυναμικό σύνολο. Tα στοιχεία του μεταβάλλονται μέσω εντολών εισαγωγής και διαγραφής. διαγραφή. εισαγωγή
Δυναμικά Σύνολα Δυναμικό σύνολο Tα στοιχεία του μεταβάλλονται μέσω εντολών εισαγωγής και διαγραφής διαγραφή εισαγωγή Δυναμικά Σύνολα Δυναμικό σύνολο Tα στοιχεία του μεταβάλλονται μέσω εντολών εισαγωγής
Δομές Δεδομένων και Αλγόριθμοι
Δομές Δεδομένων και Αλγόριθμοι Χρήστος Γκόγκος ΤΕΙ Ηπείρου Χειμερινό Εξάμηνο 2014-2015 Παρουσίαση 19 Hashing - Κατακερματισμός 1 / 23 Πίνακες απευθείας πρόσβασης (Direct Access Tables) Οι πίνακες απευθείας
Κατακερματισμός. 4/3/2009 Μ.Χατζόπουλος 1
Κατακερματισμός 4/3/2009 Μ.Χατζόπουλος 1 H ιδέα που βρίσκεται πίσω από την τεχνική του κατακερματισμού είναι να δίνεται μια συνάρτησης h, που λέγεται συνάρτηση κατακερματισμού ή παραγωγής τυχαίων τιμών
Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων
Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 2. Πίνακες 45 23 28 95 71 19 30 2 ομές εδομένων 4 5 Χρήστος ουλκερίδης Τμήμα Ψηφιακών Συστημάτων 21/10/2016
Ενότητα 7 Κατακερµατισµός
Ενότητα 7 Κατακερµατισµός ΗΥ24 - Παναγιώτα Φατούρου Κατακερµατισµός - Αρχές ειτουργίας Type LookUp(set S, Key k) { Έστω S U το προς αποθήκευση σύνολο κλειδιών. return(h[k]); Βασική Ιδέα «Αν το κλειδί 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
Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1
Δυναμικός Κατακερματισμός 1 Κατακερματισμός Τι αποθηκεύουμε στους κάδους; Στα παραδείγματα δείχνουμε μόνο την τιμή του πεδίου κατακερματισμού Την ίδια την εγγραφή (ως τρόπος οργάνωσης αρχείου) μέγεθος
Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1
Δυναμικός Κατακερματισμός Βάσεις Δεδομένων 2017-2018 1 Κατακερματισμός Πρόβλημα στατικού κατακερματισμού: Έστω Μ κάδους και r εγγραφές ανά κάδο - το πολύ Μ * r εγγραφές (αλλιώς μεγάλες αλυσίδες υπερχείλισης)
Διάλεξη 23: Τεχνικές Κατακερματισμού II (Hashing)
ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 1 Διάλεξη 23: Τεχνικές Κατακερματισμού II (Hashing) Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Διαχείριση Συγκρούσεων με Ανοικτή Διεύθυνση a) Linear
Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1
Δυναμικός Κατακερματισμός Βάσεις Δεδομένων 2018-2019 1 Κατακερματισμός Πρόβλημα στατικού κατακερματισμού: Έστω Μ κάδους και r εγγραφές ανά κάδο - το πολύ Μ * r εγγραφές (αλλιώς μεγάλες αλυσίδες υπερχείλισης)
HY240 : Δομές Δεδομένων. Φροντιστήριο Προγραμματιστικής Εργασίας 2 ο και 3 ο Μέρος
HY240 : Δομές Δεδομένων Φροντιστήριο Προγραμματιστικής Εργασίας 2 ο και 3 ο Μέρος Εισαγωγή Στο 2 ο μέρος της εργασίας θα πρέπει να γίνουν τροποποιήσεις στο πρόγραμμα που προέκυψε κατά την υλοποίηση του
Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1
Δυναμικός Κατακερματισμός Βάσεις Δεδομένων 2013-2014 Ευαγγελία Πιτουρά 1 Κατακερματισμός Τι αποθηκεύουμε στους κάδους; Στα παραδείγματα δείχνουμε μόνο την τιμή του πεδίου κατακερματισμού Την ίδια την εγγραφή
Δομές Δεδομένων. Δημήτρης Μιχαήλ. Κατακερματισμός. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο
Δομές Δεδομένων Κατακερματισμός Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Λεξικό Dictionary Ένα λεξικό (dictionary) είναι ένας αφηρημένος τύπος δεδομένων (ΑΤΔ) που διατηρεί
Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα:
Τεχνικές Κατακερµατισµού Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Τεχνικές Κατακερµατισµού ιαχείριση Συγκρούσεων µε Αλυσίδωση ιαχείριση Συγκρούσεων µε Ανοικτή ιεύθυνση ιπλός Κατακερµατισµός,
Ενότητα 6: Κατακερματισμός Ασκήσεις και Λύσεις
ΗΥ2, Ενότητα : Ασκήσεις και Λύσεις Ενότητα : Κατακερματισμός Ασκήσεις και Λύσεις Άσκηση 1 Χρησιμοποιήστε τη συνάρτηση κατακερματισμού της διαίρεσης ως πρωτεύουσα συνάρτηση κατακερματισμού και τη συνάρτηση
Ο ΑΤΔ Λεξικό. Σύνολο στοιχείων με βασικές πράξεις: Δημιουργία Εισαγωγή Διαγραφή Μέλος. Υλοποιήσεις
Ο ΑΤΔ Λεξικό Σύνολο στοιχείων με βασικές πράξεις: Δημιουργία Εισαγωγή Διαγραφή Μέλος Υλοποιήσεις Πίνακας με στοιχεία bit (0 ή 1) (bit vector) Λίστα ακολουθιακή (πίνακας) ή συνδεδεμένη Είναι γνωστό το μέγιστο
Κατακερματισμός (Hashing)
Κατακερματισμός (Hashing) O κατακερματισμός είναι μια τεχνική οργάνωσης ενός αρχείου. Είναι αρκετά δημοφιλής μέθοδος για την οργάνωση αρχείων Βάσεων Δεδομένων, καθώς βοηθάει σημαντικά στην γρήγορη αναζήτηση
Κατακερµατισµός. Οργάνωση Αρχείων (σύνοψη) Οργάνωση αρχείων: πως είναι τοποθετημένες οι εγγραφές ενός αρχείου όταν αποθηκεύονται στο δίσκο
Κατακερµατισµός 1 Οργάνωση Αρχείων (σύνοψη) Οργάνωση αρχείων: πως είναι τοποθετημένες οι εγγραφές ενός αρχείου όταν αποθηκεύονται στο δίσκο 1. Αρχεία Σωρού 2. Ταξινομημένα Αρχεία Φυσική διάταξη των εγγραφών
Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ
Διάλεξη 25: Τεχνικές Κατακερματισμού II Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Διαχείριση Συγκρούσεων με Ανοικτή Διεύθυνση a) Linear Probing, b) Quadratic Probing c) Double Hashing Διατεταγμένος
Δομές Δεδομένων. Κατακερματισμός. Δομές Δεδομένων & Αλγόριθμοι. Εργαστήριο Γνώσης και Ευφυούς Πληροφορικής 1
Δομές Δεδομένων Κατακερματισμός Πληροφορικής 1 Πρόβλημα Insert, Search και DELETE εγγραφής Σε σταθερό χρόνο Σε πίνακα εγγραφών όπου το πεδίο τιμών στα κλειδιά >> Μέγεθος Πίνακα (M) το πλήθος των εγγραφών
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δομές Δεδομένων. Ιωάννης Γ. Τόλλης Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Δομές Δεδομένων Ιωάννης Γ. Τόλλης Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού
10. Πίνακες Κατακερματισμού
Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 10. Πίνακες Κατακερματισμού 2 ομές εδομένων 4 5 Χρήστος ουλκερίδης Τμήμα Ψηφιακών Συστημάτων 16/12/2016 Πίνακες
Advanced Data Indexing
Advanced Data Indexing (Προηγμένη ευρετηρίαση δεδομένων) Κατακερματισμός - Hashing (2 ο Μέρος) Μέθοδοι Κατακερματισμού integer universe Direct Addressing Hashing with chaining Hashing by Division Hashing
Δοµές Δεδοµένων. 16η Διάλεξη Κατακερµατισµός. Ε. Μαρκάκης
Δοµές Δεδοµένων 16η Διάλεξη Κατακερµατισµός Ε. Μαρκάκης Περίληψη Συναρτήσεις κατακερµατισµού Χωριστή αλυσίδωση Γραµµική διερεύνηση Διπλός κατακερµατισµός Δυναµικός κατακερµατισµός Προοπτική Δοµές Δεδοµένων
ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΛΥΣΗ ΣΤΗΝ ΕΥΤΕΡΗ ΑΣΚΗΣΗ
ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΛΥΣΗ ΣΤΗΝ ΕΥΤΕΡΗ ΑΣΚΗΣΗ ΜΑΘΗΜΑ ΒΑΣΕΙΣ Ε ΟΜΕΝΩΝ ΑΚΑ. ΕΤΟΣ 2012-13 Ι ΑΣΚΟΝΤΕΣ Ιωάννης Βασιλείου Καθηγητής, Τοµέας Τεχνολογίας
Insert(K,I,S) Delete(K,S)
ΕΝΟΤΗΤΑ 5 ΣΥΝΟΛΑ & ΛΕΞΙΚΑ Φατούρου Παναγιώτα 1 Σύνολα (Sets) Τα µέλη ενός συνόλου προέρχονται από κάποιο χώρο αντικειµένων/στοιχείων (π.χ., σύνολα αριθµών, λέξεων, ζευγών αποτελούµενα από έναν αριθµό και
Οργάνωση Αρχείων. Βάσεις Δεδομένων : Οργάνωση Αρχείων 1. Blobs
Αρχεία Τα δεδομένα συνήθως αποθηκεύονται σε αρχεία στο δίσκο Οργάνωση Αρχείων Η μεταφορά δεδομένων από το δίσκο στη μνήμη και από τη μνήμη στο δίσκο γίνεται σε μονάδες blocks Βασικός στόχος η ελαχιστοποίηση
Διάλεξη 22: Τεχνικές Κατακερματισμού I (Hashing)
Διάλεξη 22: Τεχνικές Κατακερματισμού I (Hashing) Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Ανασκόπηση Προβλήματος και Προκαταρκτικών Λύσεων Bit Διανύσματα Τεχνικές Κατακερματισμού & Συναρτήσεις
Cuckoo Hashing. Αλγόριθμοι και Πολυπλοκότητα. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο
Cuckoo Hashing Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο β Πολυτεχνείο Πρόβλημα (ADT) Λεξικού υναμικά μεταβαλλόμενη συλλογή αντικειμένων που αναγνωρίζονται με «κλειδί» (π.χ.
Linear Hashing. Linear vs other Hashing
Linear Hashing Τµήµα Πληροφορικής & Τηλ/νών, ΕΚΠΑ Υλοποίηση Συστηµάτων Βάσεων εδοµένων http://www.di.uoa.gr/~k18 Linear vs other Hashing Σεαντίθεσηµετοστατικόκατακερµατισµό, τα buckets αυξάνονται καθώς
Advanced Data Indexing
Advanced Data Indexing (Προηγμένη ευρετηρίαση δεδομένων) Κατακερματισμός Hashing (1ο Μέρος) Η Αναζήτηση απαιτεί Δομές Λύσεις Για να υποστηριχθεί η αποδοτική αναζήτηση απαιτείται η χρήση κατάλληλων δομών-ευρετηρίων
Πίνακες (Μια παλιά άσκηση) Πίνακες Κατακερματισμού (Hash Tables) Πίνακες (Μια παλιά άσκηση) Εισαγωγή. A n
Πίνακες (Μια παλιά άσκηση) Πίνακες Κατακερματισμού (Hash Tables) Ορέστης Τελέλης telelis@unipi.gr Τμήμα Ψηφιακών Συστημάτων, Πανεπιστήμιο Πειραιώς A n O(1) (στην πρώτη ελέυθερη θέση στο τέλος του πίνακα).
Σύνοψη Προηγούμενου. Πίνακες (Arrays) Πίνακες (Arrays): Βασικές Λειτουργίες. Πίνακες (Arrays) Ορέστης Τελέλης
Σύνοψη Προηγούμενου Πίνακες (Arrays Ορέστης Τελέλης telelis@unipi.gr Τμήμα Ψηφιακών Συστημάτων, Πανεπιστήμιο Πειραιώς Διαδικαστικά θέματα. Aντικείμενο Μαθήματος. Aντικείμενα, Κλάσεις, Μέθοδοι, Μεταβλητές.
ΠΛΗ111. Ανοιξη Μάθηµα 8 ο. Αναζήτηση. Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης
ΠΛΗ111 οµηµένος Προγραµµατισµός Ανοιξη 2005 Μάθηµα 8 ο Αναζήτηση Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης Αναζήτηση Αναζήτηση σε ιατεταγµένο Πίνακα υαδική Αναζήτηση Κατακερµατισµός
Ενότητα 7 Ουρές Προτεραιότητας
Ενότητα Ουρές Προτεραιότητας ΗΥ4 - Παναγιώτα Φατούρου Ουρές Προτεραιότητας Θεωρούµε ένα χώρο κλειδιών U και έστω ότι µε κάθε κλειδί Κ (τύπου Key) έχει συσχετισθεί κάποια πληροφορία Ι (τύπου Type). Έστω
Διάλεξη 23: Τεχνικές Κατακερματισμού II (Hashing)
Διάλεξη 23: Τεχνικές Κατακερματισμού II (Hashing) Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Διαχείριση Συγκρούσεων με Ανοικτή Διεύθυνση a) Linear Probing, b) Quadratic Probing c) Double
Δυναμικός Κατακερματισμός
Δυναμικός Κατακερματισμός Καλό για βάση δεδομένων που μεγαλώνει και συρρικνώνεται σε μέγεθος Επιτρέπει τη δυναμική τροποποίηση της συνάρτησης κατακερματισμού Επεκτάσιμος κατακερματισμός μια μορφή δυναμικού
Τα δεδομένα συνήθως αποθηκεύονται σε αρχεία στο δίσκο
Οργάνωση Αρχείων 1 Αρχεία Τα δεδομένα συνήθως αποθηκεύονται σε αρχεία στο δίσκο Η μεταφορά δεδομένων από το δίσκο στη μνήμη και από τη μνήμη στο δίσκο γίνεται σε μονάδες blocks Βασικός στόχος η ελαχιστοποίηση
Οργάνωση Αρχείων. Βάσεις Δεδομένων : Οργάνωση Αρχείων 1. Blobs
Αρχεία Τα δεδομένα συνήθως αποθηκεύονται σε αρχεία στο δίσκο Οργάνωση Αρχείων Η μεταφορά δεδομένων από το δίσκο στη μνήμη και από τη μνήμη στο δίσκο γίνεται σε μονάδες blocks Βασικός στόχος η ελαχιστοποίηση
Επιµέλεια Θοδωρής Πιερράτος
εδοµένα οµές δεδοµένων και αλγόριθµοι Τα δεδοµένα είναι ακατέργαστα γεγονότα. Η συλλογή των ακατέργαστων δεδοµένων και ο συσχετισµός τους δίνει ως αποτέλεσµα την πληροφορία. Η µέτρηση, η κωδικοποίηση,
Δομές Δεδομένων. Ενότητα 12: Κατακερματισμός: Χειρισμός Συγκρούσεων. Καθηγήτρια Μαρία Σατρατζέμη. Τμήμα Εφαρμοσμένης Πληροφορικής.
Ενότητα 12: Κατακερματισμός: Χειρισμός Συγκρούσεων Καθηγήτρια Μαρία Σατρατζέμη Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες,
ΕΝΟΤΗΤΑ 7 ΟΥΡΕΣ ΠΡΟΤΕΡΑΙΟΤΗΤΑΣ ΣΩΡΟΙ
ΕΝΟΤΗΤΑ 7 ΟΥΡΕΣ ΠΡΟΤΕΡΑΙΟΤΗΤΑΣ ΣΩΡΟΙ Ουρές Προτεραιότητας (Priority Queues) Θεωρούµε ότι τα προς αποθήκευση στοιχεία έχουν κάποια διάταξη (καθένα έχει µια προτεραιότητα). Τα προς αποθήκευση στοιχεία είναι
Προγραµµατισµός Ι (ΗΥ120)
Προγραµµατισµός Ι (ΗΥ120) Διάλεξη 15: Διασυνδεµένες Δοµές - Λίστες Δοµές δεδοµένων! Ένα τυπικό πρόγραµµα επεξεργάζεται δεδοµένα Πώς θα τα διατάξουµε? 2 Τι λειτουργίες θέλουµε να εκτελέσουµε? Πώς θα υλοποιήσουµε
Διάλεξη 18: Τεχνικές Κατακερματισμού I (Hashing)
ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 1 Διάλεξη 18: Τεχνικές Κατακερματισμού I (Hashing) Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Ανασκόπηση Προβλήματος και Προκαταρκτικών Λύσεων Bit-Διανύσματα
ΚΑΤΑΚΕΡΜΑΤΙΣΜΟΣ HASHING
ΚΑΤΑΚΕΡΜΑΤΙΣΜΟΣ HASHING ΣΑΛΤΟΓΙΑΝΝΗ ΑΘΑΝΑΣΙΑ saltogiann@ceid.upatras.gr ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΤΟ ΠΡOΒΛΗΜΑ ΤΟΥ ΚΑΤΑΚΕΡΜΑΤΙΣΜΟY Θέλουμε τα δεδομένα που διαθέτουμε να μπορούν να αποθηκευτούν σε κάποιο πίνακα ή
Δομές Δεδομένων. Ενότητα 11: Τεχνικές Κατακερματισμού. Καθηγήτρια Μαρία Σατρατζέμη. Τμήμα Εφαρμοσμένης Πληροφορικής.
Ενότητα 11: Τεχνικές Κατακερματισμού Καθηγήτρια Μαρία Σατρατζέμη Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται
Κεφα λαιο 9 Κατακερματισμός
Κεφα λαιο 9 Κατακερματισμός Περιεχόμενα 9.1 Εισαγωγή... 197 9.2 Συναρτήσεις Κατακερματισμού... 199 9.3 Επίλυση συγκρούσεων... 200 9.3.1 Ξεχωριστές αλυσίδες... 200 9.3.2 Μεταβλητές διευθύνσεις... 201 Ανάλυση
Κρυπτογραφία. Έλεγχος πρώτων αριθών-παραγοντοποίηση. Διαφάνειες: Άρης Παγουρτζής Πέτρος Ποτίκας
Κρυπτογραφία Έλεγχος πρώτων αριθών-παραγοντοποίηση Διαφάνειες: Άρης Παγουρτζής Πέτρος Ποτίκας Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Σχολή ΗΜΜΥ ΕΜΠ Κρυπτογραφία
Θεωρητικό Μέρος. 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 ο Σετ Ασκήσεων Θεωρητικό Μέρος:
Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά
Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά και Πληροφορικής Μαθηματικά Πανεπιστήμιο ΙΙ Ιωαννίνων
ΠΛΗ111. Ανοιξη 2005. Μάθηµα 7 ο. έντρο. Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης
ΠΛΗ111 οµηµένος Προγραµµατισµός Ανοιξη 2005 Μάθηµα 7 ο έντρο Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης έντρο Ορισµός Υλοποίηση µε Πίνακα Υλοποίηση µε είκτες υαδικό έντρο
Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων
Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων Άσκηση 1 α) Η δομή σταθμισμένης ένωσης με συμπίεση διαδρομής μπορεί να τροποποιηθεί πολύ εύκολα ώστε να υποστηρίζει τις
ΕΝΟΤΗΤΑ 6 ΛΙΣΤΕΣ ΠΑΡΑΛΕΙΨΗΣ (SKIP LISTS)
ΕΝΟΤΗΤΑ 6 ΛΙΣΤΕΣ ΠΑΡΑΛΕΙΨΗΣ (SKIP LISTS) Ταχεία Αναζήτηση Σε πίνακα: δυαδική αναζήτηση (binary search) σε ταξινοµηµένο πίνακα O(log n) Σε δένδρο: αναζήτηση σε ισοζυγισµένο δένδρο O(log n) Σε λίστα: Μπορούµε
Δένδρα Αναζήτησης Πολλαπλής Διακλάδωσης
Δένδρα Αναζήτησης Πολλαπλής Διακλάδωσης Δένδρα στα οποία κάθε κόμβος μπορεί να αποθηκεύει ένα ή περισσότερα κλειδιά. Κόμβος με d διακλαδώσεις : k 1 k 2 k 3 k 4 d-1 διατεταγμένα κλειδιά d διατεταγμένα παιδιά
ΠΛΗ111. Ανοιξη 2005. Μάθηµα 3 ο. Συνδεδεµένες Λίστες. Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης
ΠΛΗ111 οµηµένος Προγραµµατισµός Ανοιξη 2005 Μάθηµα 3 ο Συνδεδεµένες Λίστες Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης Ανασκόπηση ΟΑΤ λίστα Ακολουθιακή λίστα Συνδεδεµένη λίστα
Αριθμοθεωρητικοί Αλγόριθμοι
Αλγόριθμοι που επεξεργάζονται μεγάλους ακέραιους αριθμούς Μέγεθος εισόδου: Αριθμός bits που απαιτούνται για την αναπαράσταση των ακεραίων. Έστω ότι ένας αλγόριθμος λαμβάνει ως είσοδο έναν ακέραιο Ο αλγόριθμος
διεύθυνση πρώτου στοιχείου διεύθυνση i-οστού στοιχείου T t[n]; &t[0] είναι t &t[i] είναι t + i*sizeof(t)
Προγραµµατισµός Ι (ΗΥ120) ιάλεξη 18: ιασυνδεµένες οµές - Λίστες ιασυνδεδεµένες δοµές δεδοµένων Η µνήµη ενός πίνακα δεσµεύεται συνεχόµενα. Η πρόσβαση στο i-οστό στοιχείο είναι άµεσηκαθώς η διεύθυνση του
1 ο ΦΥΛΛΑΔΙΟ ΑΣΚΗΣΕΩΝ - ΑΛΓΟΡΙΘΜΟΙ
Δ.Π.Θ. - Πολυτεχνική Σχολή Τμήμα Μηχανικών Παραγωγής & Διοίκησης Ακαδ. έτος 2017-2018 Τομέας Συστημάτων Παραγωγής Εξάμηνο A Αναπληρωτής Καθηγητής Στέφανος Δ. Κατσαβούνης 03 ΟΚΤ 2017 ΜΑΘΗΜΑ : ΕΙΣΑΓΩΓΗ ΣΤΗΝ
Το εσωτερικό ενός Σ Β
Επεξεργασία Ερωτήσεων 1 Εισαγωγή ΜΕΡΟΣ 1 Γενική Εικόνα του Μαθήµατος Μοντελοποίηση (Μοντέλο Ο/Σ, Σχεσιακό, Λογικός Σχεδιασµός) Προγραµµατισµός (Σχεσιακή Άλγεβρα, SQL) ηµιουργία/κατασκευή Εισαγωγή εδοµένων
Αλγόριθμοι - Τμήμα Πληροφορικής ΑΠΘ -4ο εξάμηνο 1
Αλγόριθμοι Χωρικοί-χρονικοί συμβιβασμοί http://delab.csd.auth.gr/courses/algorithms/ Αλγόριθμοι - Τμήμα Πληροφορικής ΑΠΘ -4ο εξάμηνο 1 Χωρικοί-χρονικοί συμβιβασμοί Σε πολλά προβλήματα, ο επιπλέον χώρος
ΕΝΟΤΗΤΑ 4 ΣΥΝΟΛΑ - ΛΕΞΙΚΑ
ΕΝΟΤΗΤΑ 4 ΣΥΝΟΛΑ - ΛΕΞΙΚΑ ΗΥ240 - Παναγιώτα Φατούρου Σύνολα (Sets) Τα µέλη ενός συνόλου προέρχονται από κάποιο χώρο U αντικειµένων/στοιχείων (π.χ., σύνολα αριθµών, λέξεων, ζευγών αποτελούµενων από έναν
Διδάσκων: Κωνσταντίνος Κώστα
Διάλεξη Ε7: Επανάληψη Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Hashing, Final Exam Διδάσκων: Κωνσταντίνος Κώστα ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. και Μηχ. Υπολ. Ε7-1
Υπολογιστικά & Διακριτά Μαθηματικά
Υπολογιστικά & Διακριτά Μαθηματικά Ενότητα 1: Εισαγωγή- Χαρακτηριστικά Παραδείγματα Αλγορίθμων Στεφανίδης Γεώργιος Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.
ΗΥ240: οµές εδοµένων Χειµερινό Εξάµηνο Ακαδηµαϊκό Έτος Παναγιώτα Φατούρου. Προγραµµατιστική Εργασία 3 ο Μέρος
Πανεπιστήµιο Κρήτης, Τµήµα Επιστήµης Υπολογιστών 6 εκεµβρίου 2008 ΗΥ240: οµές εδοµένων Χειµερινό Εξάµηνο Ακαδηµαϊκό Έτος 2008-09 Παναγιώτα Φατούρου Προγραµµατιστική Εργασία 3 ο Μέρος Ηµεροµηνία Παράδοσης:
Προηγμένη Ευρετηρίαση Δεδομένων (ΠΜΣ) Ενδεικτικές ερωτήσεις-θέματα για την εξέταση της θεωρίας
Προηγμένη Ευρετηρίαση Δεδομένων (ΠΜΣ) Ενδεικτικές ερωτήσεις-θέματα για την εξέταση της θεωρίας 1. Πως δομούνται οι ιεραρχικές μνήμες; Αναφέρετε τα διάφορα επίπεδά τους από τον επεξεργαστή μέχρι τη δευτερεύουσα
Τα δεδοµένα συνήθως αποθηκεύονται σε αρχεία στο δίσκο Για να επεξεργαστούµε τα δεδοµένα θα πρέπει αυτά να βρίσκονται στη
Ευρετήρια 1 Αρχεία Τα δεδοµένα συνήθως αποθηκεύονται σε αρχεία στο δίσκο Για να επεξεργαστούµε τα δεδοµένα θα πρέπει αυτά να βρίσκονται στη µνήµη. Η µεταφορά δεδοµένων από το δίσκο στη µνήµη και από τη
Αριθµοθεωρητικοί Αλγόριθµοι και το. To Κρυπτοσύστηµα RSA
Αριθµοθεωρητικοί Αλγόριθµοι και το Κρυπτοσύστηµα RSA Στην ενότητα αυτή θα µελετηθούν τα εξής θέµατα: Υπολογισµός Μέγιστου Κοινού ιαιρέτη Αλγόριθµος του Ευκλείδη Κλάσεις Ισοδυναµίας και Αριθµητική modulo
Δοµές Δεδοµένων. 15η Διάλεξη Δέντρα Δυαδικής Αναζήτησης και Κατακερµατισµός. Ε. Μαρκάκης
Δοµές Δεδοµένων 15η Διάλεξη Δέντρα Δυαδικής Αναζήτησης και Κατακερµατισµός Ε. Μαρκάκης Περίληψη Υλοποιήσεις άλλων λειτουργιών σε ΔΔΑ: Επιλογή k-οστού µικρότερου Διαµέριση Αφαίρεση στοιχείου Ένωση 2 δέντρων
Πρόβληµα 2 (15 µονάδες)
ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΑΘΗΜΑ: ΚΡΥΠΤΟΓΡΑΦΙΑ ΚΑΙ ΕΦΑΡΜΟΓΕΣ, 2013-2014 ΔΙΔΑΣΚΩΝ: Ε. Μαρκάκης Πρόβληµα 1 (5 µονάδες) 2 η Σειρά Ασκήσεων Προθεσµία Παράδοσης: 19/1/2014 Υπολογίστε
Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο Κάθε δομή μπορεί να χρησιμοποιηθεί σε οποιοδήποτε πρόβλημα ή εφαρμογή
Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 3 1. Κάθε δομή μπορεί να χρησιμοποιηθεί σε οποιοδήποτε πρόβλημα ή εφαρμογή 2. Δυναμικές είναι οι δομές που αποθηκεύονται σε συνεχόμενες θέσεις μνήμης 3. Ένας πίνακας
Ν!=1*2*3* *(N-1) * N => N! = (Ν-1)! * N έτσι 55! = 54! * 55
ΑΝΑ ΡΟΜΗ- ΑΣΚΗΣΕΙΣ Μια µέθοδος είναι αναδροµική όταν καλεί τον εαυτό της και έχει µια συνθήκη τερµατισµού π.χ. το παραγοντικό ενός αριθµού Ν, µπορεί να καλεί το παραγοντικό του αριθµού Ν-1 το παραγοντικό
5. Γεννήτριες Τυχαίων Αριθµών.
5. Γεννήτριες Τυχαίων Αριθµών. 5.1. Εισαγωγή. Στο Κεφάλαιο αυτό θα δούµε πώς µπορούµε να δηµιουργήσουµε τυχαίους αριθµούς από την οµοιόµορφη κατανοµή στο διάστηµα [0,1]. Την κατανοµή αυτή, συµβολίζουµε
ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ. Προτεινοµενες Ασκησεις - Φυλλαδιο 9
ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ Τµηµα Β Προτεινοµενες Ασκησεις - Φυλλαδιο 9 ιδασκων: Α. Μπεληγιάννης Ιστοσελιδα Μαθηµατος : http://users.uoi.gr/abeligia/numbertheory/nt2015/nt2015.html Παρασκευή 29 Μαίου 2015 Ασκηση 1.
Ενότητα 7 Ουρές Προτεραιότητας
Ενότητα 7 Ουρές Προτεραιότητας ΗΥ240 - Παναγιώτα Φατούρου Ουρές Προτεραιότητας Θεωρούµε ένα χώρο κλειδιών U και έστω ότι µε κάθε κλειδί Κ (τύπου Key) έχει συσχετισθεί κάποια πληροφορία Ι (τύπου Type).
Εισαγωγή ενός νέου στοιχείου. Επιλογή i-οστoύ στοιχείου : Εύρεση στοιχείου με το i-οστό μικρότερο κλειδί
Δομές Αναζήτησης Χειριζόμαστε ένα σύνολο στοιχείων κλειδί από ολικά διατεταγμένο σύνολο όπου το κάθε στοιχείο έχει ένα Θέλουμε να υποστηρίξουμε δύο βασικές λειτουργίες: Εισαγωγή ενός νέου στοιχείου με
ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ Ασκησεις - Φυλλαδιο 9
ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ Ασκησεις - Φυλλαδιο 9 ιδασκοντες: Ν. Μαρµαρίδης - Α. Μπεληγιάννης Ιστοσελιδα Μαθηµατος : http://users.uoi.gr/abeligia/numbertheory/nt2014/nt2014.html https://sites.google.com/site/maths4edu/home/14
ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ Ασκησεις - Φυλλαδιο 3
ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ Ασκησεις - Φυλλαδιο 3 ιδασκοντες: Α. Μπεληγιάννης - Σ. Παπαδάκης Ιστοσελιδα Μαθηµατος : http://users.uoi.gr/abeligia/numbertheory/nt.html Τετάρτη 13 Μαρτίου 2013 Ασκηση 1. Αφού ϐρείτε την
ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Δοµές Δεδοµένων
ΟΝΟΜΑΤΕΠΩΝΥΜΟ: ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ AM: Δοµές Δεδοµένων Εξεταστική Ιανουαρίου 2014 Διδάσκων : Ευάγγελος Μαρκάκης 20.01.2014 ΥΠΟΓΡΑΦΗ ΕΠΟΠΤΗ: Διάρκεια εξέτασης : 2 ώρες και
ΕΝΟΤΗΤΑ 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. Λειτουργίες που θέλουµε
Βάσεις εδοµένων Ευαγγελία Πιτουρά 2
Ευρετήρια Βάσεις εδοµένων 2002-2003 Ευαγγελία Πιτουρά 1 Ευρετήρια Ένα ευρετήριο (index) είναι µια βοηθητική δοµή αρχείου που κάνει πιο αποδοτική την αναζήτηση µιας εγγραφής σε ένα αρχείο Το ευρετήριο καθορίζεται
Τυχαιοκρατικοί Αλγόριθμοι
Πιθανότητες και Αλγόριθμοι Ανάλυση μέσης περίπτωσης Μελέτα τη συμπεριφορά ενός αλγορίθμου σε μια «μέση» είσοδο (ως προς κάποια κατανομή) Τυχαιοκρατικός αλγόριθμος Λαμβάνει τυχαίες αποφάσεις καθώς επεξεργάζεται
Μάθημα 8: Διαχείριση Μνήμης
Μάθημα 8: Διαχείριση Μνήμης 8.1 Κύρια και δευτερεύουσα μνήμη Κάθε μονάδα ενός υπολογιστή που χρησιμεύει για τη μόνιμη ή προσωρινή αποθήκευση δεδομένων ανήκει στην μνήμη (memory) του υπολογιστή. Οι μνήμες
ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 23: οµές εδοµένων και Αλγόριθµοι Ενδιάµεση Εξέταση Ηµεροµηνία : ευτέρα, 3 Νοεµβρίου 2008 ιάρκεια : 2.00-4.00 ιδάσκουσα : Άννα Φιλίππου Ονοµατεπώνυµο: ΣΚΕΛΕΤΟΙ
Γ. Κορίλη Αλγόριθµοι ροµολόγησης
- Γ. Κορίλη Αλγόριθµοι ροµολόγησης http://www.seas.upenn.edu/~tcom50/lectures/lecture.pdf ροµολόγηση σε ίκτυα εδοµένων Αναπαράσταση ικτύου µε Γράφο Μη Κατευθυνόµενοι Γράφοι Εκτεταµένα έντρα Κατευθυνόµενοι
Ψηφιακοί Υπολογιστές
1 η Θεµατική Ενότητα : υαδικά Συστήµατα Ψηφιακοί Υπολογιστές Παλαιότερα οι υπολογιστές χρησιµοποιούνταν για αριθµητικούς υπολογισµούς Ψηφίο (digit) Ψηφιακοί Υπολογιστές Σήµατα (signals) : διακριτά στοιχεία
ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ. Ασκησεις - Επανάληψης. ιδασκων: Α. Μπεληγιάννης Ιστοσελιδα Μαθηµατος :
ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ Τµηµα Β Ασκησεις - Επανάληψης ιδασκων: Α. Μπεληγιάννης Ιστοσελιδα Μαθηµατος : http://users.uoi.gr/abeligia/numbertheory/nt015b/nt015b.html Πέµπτη 1 Ιανουαρίου 016 Ασκηση 1. (1) Να λυθεί
Ανάλυση αλγορίθμων. Χρόνος εκτέλεσης: Αναμενόμενη περίπτωση. - απαιτεί γνώση της κατανομής εισόδου
Ανάλυση αλγορίθμων Παράμετροι απόδοσης ενός αλγόριθμου: Χρόνος εκτέλεσης Απαιτούμενοι πόροι, π.χ. μνήμη, επικοινωνία (π.χ. σε κατανεμημένα συστήματα) Προσπάθεια υλοποίησης Ανάλυση της απόδοσης Θεωρητική
Εισαγωγή στην Πληροφορική. Α σ κ ή σ ε ι ς σ τ η ν ι α χ ε ί ρ ι σ η Μ ν ή µ η ς. Αντώνης Σταµατάκης
Εισαγωγή στην Πληροφορική Α σ κ ή σ ε ι ς σ τ η ν ι α χ ε ί ρ ι σ η Μ ν ή µ η ς Αντώνης Σταµατάκης Μονάδες µέτρησης µνήµης Η βασική µονάδα µέτρησης της µνήµης στα υπολογιστικά συστήµατα είναι το µπάιτ
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Πίνακες Συµβόλων Κεφάλαιο 12 ( ) Ε. Μαρκάκης Επίκουρος Καθηγητής
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Πίνακες Συµβόλων Κεφάλαιο 12 (12.1-12.4) Ε. Μαρκάκης Επίκουρος Καθηγητής Περίληψη Πίνακες συµβόλων Διεπαφή πίνακα συµβόλων Αναζήτηση µε αριθµοδείκτη Ακολουθιακή αναζήτηση Δυαδική αναζήτηση