Advanced Data Indexing
|
|
- Πέρσις Μαλαξός
- 7 χρόνια πριν
- Προβολές:
Transcript
1 Advanced Data Indexing (Προηγμένη ευρετηρίαση δεδομένων) Κατακερματισμός - Hashing (2 ο Μέρος)
2 Μέθοδοι Κατακερματισμού integer universe Direct Addressing Hashing with chaining Hashing by Division Hashing by Multiplication Universal Hashing Perfect Hashing (static, dynamic) random probing Hashing with chaining Hashing with open addressing Linear probing Quadratic probing Double Hashing Brent s Method Multiple-Choice Hashing Asymmetric Hashing LCFS Hashing Robin-Hood Hashing Cuckoo Hashing Bloom Filters
3 Ανοικτή Διευθυνσιοδότηση (Hashing with Open Addressing)
4 Ανοικτή Διευθυνσιοδότηση (Hashing with Open Addressing) Βασική διαφορά από την μέθοδο κατακερματισμού με αλυσίδες είναι ότι σε κάθε θέση του πίνακα hash αποθηκεύεται μόνο ένα στοιχείο. Υπάρχει μία προκαθορισμένη ακολουθία ελέγχων η οποία αναλαμβάνει την διαχείριση των συγκρούσεων μέσα στον πίνακα. Βασική ιδέα είναι πως όταν γίνεται μία σύγκρουση δοκιμάζεται η επόμενη θέση που καθορίζει η ακολουθία ελέγχων. Το κόστος αναζήτησης, εισαγωγής και διαγραφής είναι ανάλογο με το πλήθος των ελέγχων που απαιτούνται. 4
5 Ανοικτή Διευθυνσιοδότηση (Hashing with Open Addressing) Έστω A[x 0 ], A[x 1 ], A[x 2 ], η προκαθορισμένη ακολουθία των θέσεων που ελέγχονται για να γίνει κάποια βασική πράξη που αφορά ένα στοιχείο x. Τότε: Για τη διαγραφή του x: Γίνεται αναζήτηση του στοιχείου με την κατάλληλη ακολουθία ελέγχων. Αν εντοπιστεί στη θέση A[x i ] τότε σημειώνεται ως διαγραμμένο. Η σημείωσή του γίνεται: είτε με ενεργοποίηση ενός extra bit (αν υπάρχει στις θέσεις του πίνακα hash). είτε με την εισαγωγή μίας προκαθορισμένης ειδικής τιμής-κλειδιού στη θέση του, που θα δείχνει ότι το στοιχείο στη θέση αυτή έχει διαγραφεί (del). 5
6 Ανοικτή Διευθυνσιοδότηση (Hashing with Open Addressing) Για την εισαγωγή του x: Ελέγχονται οι θέσεις τοποθέτησης με την κατάλληλη ακολουθία ελέγχων. Αν η θέση A[x i ] είναι άδεια ή έχει κάποιο στοιχείο που έχει προσημειωθεί ως διαγραμμένο τότε το x εισάγεται στη θέση αυτή. Για την αναζήτηση του x: Γίνεται αναζήτηση του στοιχείου x με την κατάλληλη ακολουθία ελέγχων. Αν εντοπιστεί στη θέση A[x i ] τότε υπάρχει στον πίνακα και επιστρέφεται η θέση αυτή. Αν εντοπιστεί στην ακολουθία μία τελείως κενή θέση (προσοχή: όχι στοιχείο που προσημειώθηκε ως διαγραμμένο) τότε το x σίγουρα δεν είναι αποθηκευμένο στον πίνακα. 6
7 Παράδειγμα Έστω ότι η ακολουθία ελέγχων γίνεται στις θέσεις 1, 5, 9, κατά σειρά. Εισαγωγή του 14: Η θέση 1 είναι κατειλημμένη από το 79. Επόμενος έλεγχος η θέση 5. Η θέση 5 είναι κατειλημμένη από το 98. Επόμενος έλεγχος η θέση 9. Η θέση 9 είναι άδεια και γίνεται η τοποθέτηση. Διαγραφή του 98: Η θέση 1 δεν περιέχει το 98. Επόμενος έλεγχος η θέση 5. Η θέση 5 έχει το 98 και σημειώνεται ως διαγραμμένο. Αναζήτηση του 14: Η θέση 1 είναι κατειλημμένη από το 79. Επόμενος έλεγχος η θέση 5. Η θέση 5 περιέχει διαγραμμένο στοιχείο. Επόμενος έλεγχος η θέση 9. Η θέση 9 έχει το ζητούμενο στοιχείο. <1, 5, 9> 7
8 Γενίκευση Συνάρτησης Κατακερματισμού Η ακολουθία ελέγχων για τις θέσεις του πίνακα πρέπει να καθορίζεται από την ίδια την συνάρτηση hash. Αυτό σημαίνει ότι η συνάρτηση αυτή θα έχει πλέον 2 παραμέτρους: (i) Το Στοιχείο/Κλειδί x, και (ii) την παράμετρο της ακολουθίας ελέγχων p h(x,p), p=0,1,...,m-1 Τότε η ακολουθία ελέγχων θα είναι η σειρά: <h(x,0), h(x,1),..., h(x,m-1)> Για να καλύπτει όλες τις θέσεις του πίνακα πρέπει να είναι αναδιάταξη της σειράς: <0,1,...,m-1> Υπάρχουν m! διαφορετικές αναδιατάξεις. Οι καλές οικογένειες συναρτήσεων αναπαράγουν όλες τις m! αναδιατάξεις.
9 Ανοικτή Διευθυνσιοδότηση - Απόδοση Έστω A[x 0 ], A[x 1 ], A[x 2 ],, A[x i ] η προκαθορισμένη ακολουθία των θέσεων που ελέγχονται για να γίνει οποιαδήποτε βασική πράξη (search, insert, delete) που αφορά ένα στοιχείο x, μέχρι την τελευταία θέση που απαιτείται, την A[x i ], δηλαδή μετά από i ελέγχους. Έστω επίσης λ η πιθανότητα ώστε μία θέση του πίνακα να είναι κατειλημμένη (ίδια πιθανότητα για όλες τις θέσεις). Επειδή οι θέσεις είναι ανεξάρτητες, η συνολική πιθανότητα για την πράξη θα είναι: ( ) ( ) i Pr i = λ λ... λ 1 λ = λ ( 1 λ) i 9
10 Ανοικτή Διευθυνσιοδότηση - Απόδοση Συνεπώς το αναμενόμενο κόστος της πράξης θα είναι: ( ) = ( λ) i λ = ( λ) i 1 i Pr i 1 i 1 iλ = i= 0 i= 0 i= λ Δηλαδή κάθε πράξη (search, insert, delete) απαιτεί κόστος Θ(1/(1-λ)) και έτσι είναι απόλυτα εξαρτημένο από την τιμή λ. Προσοχή: Όταν γίνονται έντονες μεταβολές στον πίνακα (π.χ. μαζικές εισαγωγές ή διαγραφές τότε η πιθανότητα σύγκρουσης λ μπορεί να μεταβληθεί σημαντικά. Αποδεικνύεται ότι το κόστος της χειρότερης περίπτωσης για την κάθε πράξη είναι O(logn). 10
11 Μέθοδοι Ανοικτής Διευθυνσιοδότησης Ανάλογα με τον τρόπο που καθορίζεται η ακολουθία ελέγχων (μέσω της συνάρτησης hash) προκύπτει και διαφορετική απόδοση για τις βασικές πράξεις. Κοινές μέθοδοι είναι: Γραμμικός Έλεγχος (Linear Probing) Τετραγωνικός Έλεγχος (Quadratic Probing) Διπλός Κατακερματισμός (Double Hashing) Όμως καμία από αυτές δεν παράγει περισσότερες από m 2 αναδιατάξεις των m θέσεων (βέλτιστο: m!).
12 Γραμμικός Έλεγχος (Linear Probing)
13 Γραμμικός Έλεγχος (Linear Probing) Βασική Ιδέα: όταν υπάρχει σύγκρουση, βρίσκουμε την επόμενη διαθέσιμη θέση στον πίνακα ελέγχοντας τις θέσεις διαδοχικά μία προς μία. Έστω h 1 η βασική συνάρτηση hash που δίνει τις θέσεις στον πίνακα. Μπορεί να γίνει εκλογή οποιασδήποτε συνάρτησης Μία συνάρτηση που κάνει ομοιόμορφο κατακερματισμό (τυχαία διασπορά) θα έχει καλή απόδοση. Τότε η συνάρτηση: h(x,i) = (h 1 (x) + i) mod m, i=0,1,2,... θα καθορίζει την ακολουθία ελέγχων.
14 Γραμμικός Έλεγχος (Linear Probing) h(x,i) = (h 1 (x) + i) mod m i = 0,1,2,... Πρώτη θέση ελέγχου: h 1 (x) Δεύτερη θέση ελέγχου: h 1 (x) + 1 Τρίτη θέση ελέγχου: h 1 (x)+2, κοκ. Ακολουθία ελέγχων: < h 1 (x), h 1 (x)+1, h 1 (x)+2,...> Επιστρέφει στην αρχή
15 Παράδειγμα h 1 (x) = x mod 31, (m=31) h(x,i) = (h 1 (x) + i) mod 31, i=0,1,2,... Εισαγωγή κατά σειρά των 126,64,95,33,100: Επειδή 126 = 2 mod 31, το 126 εισάγεται κανονικά στη θέση 2. Επειδή 64 = 2 mod 31, και η θέση 2 είναι κατειλημμένη από το 126, η εισαγωγή του 64 γίνεται στην επόμενη θέση 3. Επειδή 95 = 2 mod 31, και οι θέσεις 2,3 είναι κατειλημμένες από τα 126,64, η εισαγωγή του 95 γίνεται στην επόμενη θέση 4. Επειδή 33 = 2 mod 31, και οι θέσεις 2,3,4 είναι κατειλημμένες από τα 126,64,95, η εισαγωγή του 33 γίνεται στην επόμενη θέση 5. Επειδή 100 = 7 mod 31, το 100 εισάγεται κανονικά στη θέση
16 Παράδειγμα h 1 (x) = x mod 31, (m=31) h(x,i) = (h 1 (x) + i) mod 31, i=0,1,2,... Διαγραφή του 95: Επειδή 95 = 2 mod 31, ελέγχεται η θέση 2. Δεν υπάρχει εκεί οπότε ελέγχονται οι επόμενες θέσεις με τη σειρά. Το 95 εντοπίζεται στη θέση 4 και σημειώνεται ως διαγραμμένο. Αναζήτηση του 33: Επειδή 33 = 2 mod 31, ελέγχεται η θέση 2. Δεν υπάρχει εκεί οπότε ελέγχονται οι επόμενες θέσεις με τη σειρά. Η 3 η θέση έχει το 64. Συνεχίζεται ο έλεγχος στην 4 η που έχει διαγραμμένο στοιχείο. Συνεχίζεται ο έλεγχος στην 5 η θέση και εντοπίζεται το
17 Παράδειγμα h 1 (x) = x mod 31, (m=31) h(x,i) = (h 1 (x) + i) mod 31, i=0,1,2,... Αναζήτηση του 2: Επειδή 2 = 2 mod 31, ελέγχεται η θέση 2. Δεν υπάρχει εκεί οπότε ελέγχονται οι επόμενες θέσεις με τη σειρά. Η 3 η θέση έχει το 64. Συνεχίζεται ο έλεγχος στην 4 η που έχει διαγραμμένο στοιχείο. Συνεχίζεται ο έλεγχος στην 5 η θέση που έχει το 33. Συνεχίζεται ο έλεγχος στην 6 η θέση που είναι κενή. Άρα το 2 δεν υπάρχει στον πίνακα. Εισαγωγή του 2: Επειδή 2 = 2 mod 31, και οι θέσεις 2,3 είναι κατειλημμένες από τα 126,64, η εισαγωγή του 2 γίνεται στην επόμενη θέση 4 που είχε διαγραμμένο στοιχείο
18 Γραμμικός Έλεγχος (Linear Probing) Μειονεκτήματα: Αναπαράγονται μόνο m αναδιατάξεις των m θέσεων (όχι όλες οι m! αναδιατάξεις). Ουσιαστικά είναι οι κυκλικές μεταθέσεις. Συγκεντρώνονται στοιχεία κατά ομάδες σε γειτονικά κελιά (primary clustering) αυξάνοντας την πιθανότητα σε μελλοντικές συγκρούσεις. Μάλιστα οι μεγάλες ομάδες έχουν την τάση (μεγαλύτερη πιθανότητα) να μεγαλώνουν ακόμα περισσότερο (rich get richer). Πλεονεκτήματα: Εύκολη υλοποίηση (απλότητα). Εκμεταλλεύεται σημαντικά την τοπικότητα εφόσον γειτονικά κελιά αποθηκεύονται στο ίδιο μπλοκ (λιγότερα cache misses).
19 Γραμμικός Έλεγχος - Κόστος Έστω λ η πιθανότητα να συμβεί μία σύγκρουση. Το κόστος κάθε πράξης (search, insert, delete) για ένα στοιχείο x εξαρτάται από το πλήθος ελέγχων που απαιτούνται όταν υπάρχει ή όταν δεν υπάρχει το στοιχείο x στον πίνακα. Το αναμενόμενο πλήθος ελέγχων για μία επιτυχή αναζήτηση είναι: = Θ 2 1 λ 1 λ Το αναμενόμενο πλήθος ελέγχων για μία ανεπιτυχής αναζήτηση είναι: ( ) = Θ λ ( 1 λ) Έτσι, καθώς γεμίζει ο πίνακας, όταν έχουμε λ>1/2, η απόδοση αρχίζει να μειώνεται γρήγορα.
20 Τετραγωνικός Έλεγχος (Quadratic Probing)
21 Τετραγωνικός Έλεγχος (Quadratic Probing) Βασική Ιδέα: όταν υπάρχει σύγκρουση, βρίσκουμε την επόμενη διαθέσιμη θέση στον πίνακα ελέγχοντας c 2 i 2 +c 1 i θέσεις πιο μπροστά, για i=0,1,2,... Για c 2 =0, c 1 =1 έχουμε τον γραμμικό έλεγχο. Τυπική περίπτωση είναι για c 2 =1, c 1 =0. Έστω h 1 μία συνάρτηση hash που δίνει τις αρχικές θέσεις στον πίνακα. Τότε η συνάρτηση: h(x,i) = (h 1 (x) + c 2 i 2 +c 1 i) mod m, i=0,1,2,... καθορίζει την ακολουθία ελέγχων.
22 Τετραγωνικός Έλεγχος (Quadratic Probing) Πρέπει να γίνει προσεκτική επιλογή των σταθερών c 1, c 2 ώστε η ακολουθία ελέγχων να μπορεί να καλύψει όλες τις θέσεις του πίνακα κατά την πλήρη ανάπτυξή της (δύσκολο αν λ>1/2). Επίσης, πρέπει το m να είναι πρώτος αριθμός. Μάλιστα στην τυπική περίπτωση [h(x,i) = (h 1 (x)+i 2 ) mod m] πρέπει το m να είναι πρώτος της μορφής 4k+3, k Z. Αναπαράγονται μόνο m αναδιατάξεις των m θέσεων (όχι m!), καθώς η αρχική θέση που καθορίζει η συνάρτηση h 1 καθορίζει και την υπόλοιπη ακολουθία ελέγχων.
23 Παράδειγμα 1 ο Όλα φαίνονται φυσιολογικά! h 1 (x) = x mod 7, h(x,i) = (h 1 (x) + i 2 ) mod 7, i=0,1,2,... 7=4 1+3 insert(76) 76mod7 = insert(40) 40mod7 = insert(48) 48mod7 = insert(5) 5mod7 = insert(55) 55mod7 = έλεγχοι:
24 Παράδειγμα 2 ο Η ακολουθία ελέγχων δίνει τις θέσεις 5,6,2,0,0,2,6,5,6,2,0,0,2,6,5,.. Ποτέ δεν θα πέσουμε σε άδεια θέση! h 1 (x) = x mod 7, h(x,i) = (h 1 (x) + i 2 ) mod 7, i=0,1,2,... 7=4 1+3 insert(76) 76mod7 = insert(93) 93mod7 = insert(40) 40mod7 = insert(35) 35mod7 = insert(47) 47mod7 = έλεγχοι:
25 Τετραγωνικός Έλεγχος (Quadratic Probing) h(x,i) = (h 1 (x)+i 2 ) mod m Θεώρημα: Αν λ 1/2 και m πρώτος τότε πάντοτε θα βρίσκεται άδεια θέση για την εισαγωγή στοιχείου. Απόδειξη: Για κάθε ζεύγος 0 i,j m/2 με i j είναι h(x,i) h(x,j) συνεπώς με m/2 το πολύ ελέγχους θα βρεθεί άδεια θέση. Απαγωγή σε άτοπο: Έστω αντίθετα ότι h(x,i)=h(x,j). Τότε: (h 1 (x) + i 2 ) mod m = (h 1 (x) + j 2 ) mod m i 2 mod m = j 2 mod m (i 2 - j 2 ) mod m = 0 [(i + j)(i - j)] mod m = 0 i + j = 0,m ή i - j = 0,m (άτοπο καθώς i j και i,j m/2)
26 Τετραγωνικός Έλεγχος - Προβλήματα Αν λ>1/2 τότε δεν υπάρχει εγγύηση ότι η ακολουθία ελέγχων θα πέσει σε άδεια θέση ώστε να εξασφαλιστεί η εισαγωγή στοιχείου (αποτυχία εισαγωγής). Συνεπώς πρέπει να μην αφήσουμε τον πίνακα να γεμίσει με στοιχεία πάνω από 50%. Ο τετραγωνικός έλεγχος δεν κινδυνεύει από πρόωρη συγκέντρωση στοιχείων (primary clustering), όπως συμβαίνει με τον γραμμικό, αλλά κινδυνεύει από επαγόμενη συγκέντρωση δηλαδή όταν έχουμε συγκρούσεις στην κύρια συνάρτηση h 1 (x)= h 1 (y) που θα δώσουν την ίδια ακολουθία ελέγχων (secondary clustering). Πώς θα μπορούσαμε να το αποφύγουμε αυτό;
27 Διπλός Κατακερματισμός (Double Hashing)
28 Διπλός Κατακερματισμός (Double Hashing) Βασική Ιδέα: όταν υπάρχει σύγκρουση, βρίσκουμε την επόμενη διαθέσιμη θέση στον πίνακα ελέγχοντας i h 2 (x) θέσεις πιο μπροστά, για i=0,1,2,..., όπου h 2 (x) μία δεύτερη συνάρτηση hash. Δηλαδή μία άλλη συνάρτηση hash καθορίζει την ακολουθία ελέγχων. Αν h 1 η συνάρτηση hash που δίνει τις αρχικές θέσεις στον πίνακα, τότε η συνάρτηση: h(x,i) = (h 1 (x) + i h 2 (x)) mod m, i=0,1,2,... θα καθορίζει την ακολουθία ελέγχων.
29 Διπλός Κατακερματισμός (Double Hashing) Χρειάζεται προσεκτική επιλογή της δεύτερης συνάρτησης hash h 2 (x): Πρέπει επίσης να είναι καλή συνάρτηση hash (να κάνει όσο το δυνατόν ομοιόμορφο κατακερματισμό). Πρέπει να υλοποιείται εύκολα. Πρέπει να διαφέρει σημαντικά από την αρχική συνάρτηση hash h 1 (x). Δηλαδή στοιχεία που απεικονίζονται στην ίδια θέση με την h 1 πρέπει να απεικονίζονται σε τελείως διαφορετικές θέσεις με την h 2. Ποτέ να μην επιστρέφει την τιμή 0 mod m. Μία καλή και τυπική επιλογή είναι: h 2 (x)= p - (x mod p) όπου p πρώτος μικρότερος του m.
30 Παράδειγμα h 1 (x) = x mod 7, h 2 (x) = 5 - (x mod 5), (m=7, p=5) h(x,i) = (h 1 (x) + i h 2 (x)) mod 7, i=0,1,2,... insert(76) 76%7 = 6 0 insert(93) 93%7 = 2 0 insert(40) 40%7 = 5 0 insert(47) 47%7 = (47%5) = 3 0 Τώρα δεν υπάρχει πρόβλημα με την εισαγωγή του 47 και του 55 (λ>1/2). insert(10) 10%7 = 3 0 insert(55) 55%7 = (55%5) = έλεγχοι:
31 Διπλός Κατακερματισμός - Απόδοση Πλεονεκτήματα: Για κάθε λ<1 ο διπλός κατακερματισμός εγγυάται ότι θα βρει μία κενή θέση για την εισαγωγή νέου στοιχείου (αρκεί να επιλέξουμε κατάλληλο μέγεθος πίνακα και συναρτήσεις hash). Αποφεύγονται τα προβλήματα των ομαδοποιήσεων στα στοιχεία (primary clustering και secondary clustering). Το αναμενόμενο κόστος για τις βασικές πράξεις προσεγγίζει το βέλτιστο (random hash): 1 1 Κόστος επιτυχούς αναζήτησης: ln λ 1 λ Κόστος ανεπιτυχούς αναζήτησης: 1 1 λ Μειονεκτήματα: Χρειάζεται ένας έξτρα υπολογισμός hash.
32 Μέσο πλήθος ελέγχων λ λ
33 Μέθοδος του Brent (Brent s Method)
34 Μέθοδος του Brent Είναι μία τεχνική που προσπαθεί να ελαχιστοποιήσει το μέσο κόστος επιτυχούς αναζήτησης στις μεθόδους hash ανοικτής διευθυνσιοδότησης. Χρησιμοποιεί την ηλικία ενός στοιχείου x, που αποθηκεύεται μαζί με το στοιχείο, η οποία είναι ίση με το πλήθος των ελέγχων που έγιναν μέχρι να τοποθετηθεί το στοιχείο x στον πίνακα (εκτός της αρχικής θέσης). Αν A[x 0 ], A[x 1 ], A[x 2 ],, A[x i ] η προκαθορισμένη ακολουθία των θέσεων που ελέγχθηκαν και το x τοποθετήθηκε στην θέση A[x i ], τότε age(x)=i.
35 Μέθοδος του Brent Κατά την εισαγωγή ενός στοιχείου x βρίσκουμε την κατάλληλη κενή θέση A[x i ] όπως καθορίζει η ακολουθία ελέγχων και ορίζουμε την ηλικία του age(x)=i. Έστω ένα στοιχείο y που έχει ήδη τοποθετηθεί στον πίνακα στην θέση A[x j ] με ηλικία age(y)=j<i-1 από την ίδια ακολουθία ελέγχων του x. Αν η θέση A[y j+1 ] είναι κενή τότε μετακινούμε το y στην θέση αυτή (αυξάνοντας την ηλικία του κατά 1), ενώ το x το τοποθετούμε στη θέση A[x j ] (θέση που είχε το y). Έτσι η τελική ηλικία τους θα είναι: age(x)=j<i-1<i, age(y)=j+1<i. Με τον τρόπο αυτό κρατάμε τον μέσο όρο της ηλικίας των στοιχείων όσο το δυνατόν μικρό. Η ανάλυση της απόδοσης της μεθόδου αυτής είναι δύσκολη.
36 Κατακερματισμός Πολλαπλής Επιλογής (Multiple-Choice Hashing)
37 Κατακερματισμός Πολλαπλής Επιλογής Είναι μία μέθοδος κατακερματισμού με αλυσίδες (hashing with chaining) στην οποία κατά την εισαγωγή ενός στοιχείου x επιλέγεται η αποθήκευσή του σε μία αλυσίδα ανάμεσα από d 2 διαφορετικές. Η συνάρτηση hash απεικονίζει το στοιχείο x σε d θέσεις: A[x 0 ], A[x 1 ],, A[x d-1 ]. Κατά την εισαγωγή του x ελέγχονται τα μεγέθη των αλυσίδων που βρίσκονται στις θέσεις αυτές και επιλέγεται η αλυσίδα A[x i ] με το μικρότερο μήκος (για κάποιο i {0,1,,d-1}) τη στιγμή της εισαγωγής του x.
38 Κατακερματισμός Πολλαπλής Επιλογής x Παράδειγμα με d= m Κάδος 0 Κάδος 1 Κάδος 3 Κάδος 4 Κατά την εισαγωγή του x ελέγχονται οι 4 λίστες που του αντιστοιχούν. Η λίστα με το μικρότερο μέγεθος είναι η 3 η. Έτσι το x εισάγεται στην 3 η αλυσίδα.
39 Κατακερματισμός Πολλαπλής Επιλογής Κατά την αναζήτηση ενός στοιχείου x ελέγχονται τα στοιχεία στις d αλυσίδες: A[x 0 ], A[x 1 ],, A[x d-1 ] παράλληλα. Δηλαδή ελέγχονται τα πρώτα τους στοιχεία, μετά τα δεύτερα κλπ, μέχρι να βρεθεί το x. Η διαγραφή ενός στοιχείου x γίνεται μετά από την αναζήτησή του στην αλυσίδα που βρίσκεται. Οι παράλληλοι έλεγχοι μπορούν να γίνουν ακόμα και ταυτόχρονα σε σύστημα με παράλληλους επεξεργαστές (parallel programming).
40 Κατακερματισμός Πολλαπλής Επιλογής - Απόδοση Το αναμενόμενο κόστος αναζήτησης μέσης περίπτωσης είναι Θ(d). Το κόστος αναζήτησης χειρότερης περίπτωσης είναι O(dW), όπου W είναι το μήκος της μεγαλύτερης αλυσίδας. Το αναμενόμενο μήκος E[W] είναι: ln ln n + O(1) ln d Συνεπώς το αναμενόμενο κόστος αναζήτησης χειρότερης περίπτωσης, θεωρώντας το d ως μία μικρή σταθερά, είναι: Θ log log n ( )
41 Ασύμμετρος Κατακερματισμός (Asymmetric Hashing)
42 Ασύμμετρος Κατακερματισμός (Asymmetric Hashing) Είναι μία παραλλαγή της μεθόδου κατακερματισμού πολλαπλής επιλογής (multiple-choice hashing) στην οποία: Ο πίνακας hash χωρίζεται σε d κομμάτια ίσου μεγέθους n/d (όπου n πολλαπλάσιο του d). Η επιλογή των d θέσεων: A[x 0 ], A[x 1 ],, A[x d-1 ] για το στοιχείο x γίνεται ομοιόμορφα μέσα από τα d κομμάτια. Συνεπώς κάθε x i με i=0,1,,d-1 εκλέγεται από το κομμάτι του πίνακα με δείκτες: {in/d,..., (i+1)n/d 1}. Οι βασικές πράξεις εκτελούνται όπως και στον κατακερματισμό πολλαπλής επιλογής.
43 Ασύμμετρος Κατακερματισμός - Απόδοση Αν W είναι το μήκος της μεγαλύτερης αλυσίδας, τότε το αναμενόμενο μήκος είναι: ln ln n E[ W ] + O(1) d lnφd 1+ 5 όπου φ d είναι η γενίκευση του χρυσού λόγου. φ 2 = 2 Συνεπώς το αναμενόμενο κόστος αναζήτησης χειρότερης περίπτωσης, θεωρώντας το d ως μία μικρή σταθερά, είναι πάλι: Θ( log log n) Όμως για μεγαλύτερες τιμές του d το κόστος είναι σημαντικά καλύτερο από τον κατακερματισμό πολλαπλής επιλογής.
44 Κατακερματισμός LCFS (LCFS Hashing)
45 Κατακερματισμός LCFS Είναι μία μορφή κατακερματισμού με ανοικτή διευθυνσιοδότηση στην οποία αλλάζει η στρατηγική χειρισμού των συγκρούσεων. Στην ανοικτή διευθυνσιοδότηση, όταν προκύπτει μία σύγκρουση μεταξύ δύο στοιχείων, δίνεται προτεραιότητα στο στοιχείο που μπήκε πρώτο στον πίνακα οπότε τα επόμενα προχωράνε στις επόμενες θέσεις που καθορίζει η ακολουθία ελέγχων (FCFS first come first served). Με τον κατακερματισμό LCFS συμβαίνει ακριβώς το αντίθετο (last come first served). Δηλαδή: Κάθε νεοεισερχόμενο στοιχείο x αποθηκεύεται πάντοτε στην πρώτη θέση x 0 που καθορίζει η ακολουθία ελέγχων. Αν η θέση αυτή είναι κατειλημμένη από άλλο στοιχείο y, το οποίο τοποθετήθηκε από την ακολουθία του στη θέση y j, τότε το y προχωράει στην επόμενη θέση της ακολουθίας του, δηλαδή στην θέση y j+1. Αν και εκεί υπάρχει άλλο στοιχείο z συνεχίζεται η διαδικασία ομοίως.
46 Κατακερματισμός LCFS - Απόδοση Αποδεικνύεται ότι το αναμενόμενο κόστος αναζήτησης χειρότερης περίπτωσης είναι φραγμένο από το: 1 ln ln 1( ) 1 λ 1 1+ Γ λn ln Γ Γ 1 ln n ln ln ln n λn = 1+ ln ln n ln ln n Όπου: + O ( ) ( ) 2 λn ln Γ λn Συνεπώς το αναμενόμενο κόστος αναζήτησης χειρότερης περίπτωσης είναι: Θ(logn). 1 + O ln ln n ( )
47 Robin-Hood Κατακερματισμός (Robin-Hood Hashing)
48 Robin-Hood Κατακερματισμός Είναι μία μορφή κατακερματισμού με ανοικτή διευθυνσιοδότηση η οποία προσπαθεί να εξισορροπήσει τους χρόνους αναζήτησης των στοιχείων χρησιμοποιώντας μία πιο δίκαιη στρατηγική χειρισμού των συγκρούσεων. Κατά την εισαγωγή ενός στοιχείου x: Έστω ότι η ακολουθία ελέγχων καθορίζει ότι το x θα τοποθετηθεί στην θέση x i. Αν η θέση αυτή είναι κατειλημμένη από άλλο στοιχείο y, το οποίο τοποθετήθηκε από την ακολουθία του στη θέση y j, τότε το νεότερο από τα δύο στοιχεία x, y θα προχωρήσει παρακάτω. Η ηλικία καθορίζεται πάλι ως εξής: age(x)=i και age(y)=j. Αν i j τότε το x προχωράει στην επόμενη διαθέσιμη θέση της ακολουθίας του, δηλαδή στην πρώτη κενή θέση της: x i+1, x i+2, Αν i>j τότε το y προχωράει στην επόμενη διαθέσιμη θέση της ακολουθίας του, δηλαδή στην πρώτη κενή θέση της: y j+1, y j+2,
49 Robin-Hood Κατακερματισμός - Απόδοση Αποδεικνύεται ότι το αναμενόμενο κόστος αναζήτησης χειρότερης περίπτωσης είναι στενά φραγμένο από: Θ(log log n). Συνεπώς είναι εξίσου ανταγωνιστικός με την μέθοδο κατακερματισμού πολλαπλής επιλογής.
50 Cuckoo Κατακερματισμός (Cuckoo Hashing)
51 Cuckoo Κατακερματισμός Είναι μία μορφή κατακερματισμού που συνδυάζει τον διπλό κατακερματισμό (double hashing) και τον τέλειο κατακερματισμό (perfect hashing). Βασική Ιδέα: Χρησιμοποιούνται δύο πίνακες hash Τ 1, Τ 2 του ίδιου μεγέθους m. Χρησιμοποιούνται δύο καθολικές συναρτήσεις hash h 1 (x), h 2 (x) μία για τον κάθε πίνακα. Κάθε στοιχείο x είναι αποθηκευμένο είτε στον έναν πίνακα στην θέση Τ 1 [h 1 (x)], είτε στον άλλο στην θέση Τ 2 [h 2 (x)]. Δεν υπάρχει άλλη επιλογή!
52 Cuckoo Κατακερματισμός Αναζήτηση: Για την αναζήτηση ενός στοιχείου x απλά ελέγχουμε αν βρίσκεται στο Τ 1 [h 1 (x)] ή στο Τ 2 [h 2 (x)]. Απαιτούνται μόνο δύο έλεγχοι για την εύρεση του x. Το κόστος σε κάθε περίπτωση είναι: O(1). h 1 (x) d c x a... T 1 Που είναι το x? t y b... z T 2 h 2 (x)
53 Cuckoo Κατακερματισμός Εισαγωγή του x: Ελέγχουμε αν είναι άδειο το κελί Τ 1 [h 1 (x)] οπότε τοποθετούμε αμέσως το x. Αν υπάρχει εκεί άλλο στοιχείο y, δηλαδή ισχύει h 1 (x)]=h 1 (y), τότε τοποθετούμε το x στη θέση του y και ελέγχουμε αν είναι άδειο το κελί Τ 2 [h 2 (y)]. Αν είναι τοποθετούμε εκεί το y. Αν υπάρχει εκεί άλλο στοιχείο z, δηλαδή ισχύει h 2 (y)=h 2 (z), τότε τοποθετούμε το y στη θέση του z και ελέγχουμε αν είναι άδειο το κελί Τ 1 [h 1 (z)]. Αν είναι τοποθετούμε εκεί το z. Αν δεν είναι κενό επαναλαμβάνουμε ομοίως.
54 Παράδειγμα Insert(x, 1) Αλγόριθμος Insert(x, i): 1. Τοποθετούμε το x στη θέση h i (x) του T i 2. Αν το T i [h i (x)] ήταν άδειο, τότε τέλος 3. Αν το T i [h i (x)] περιείχε το y, Insert(y, 3 i) h 1 (e) = h 1 (a) d c x a t y b h 2 (y) = h 2 (a)... e... h 1 (y) z T 1 T 2
55 Cuckoo Κατακερματισμός Απόδοση Διαγραφή: Κάνουμε αναζήτηση του x και το διαγράφουμε. Ιδιότητες: Η αναζήτηση και η διαγραφή απαιτεί το πολύ δύο προσπελάσεις ακόμα και στη χειρότερη περίπτωση Μπορεί να γίνει και παράλληλα Η εισαγωγή έχει επιμερισμένο αναμενόμενο κόστος Θ(1). Κάνει καλή χρήση της μνήμης. Δεν απαιτεί δυναμική δέσμευση μνήμης. Έχει πολλές εφαρμογές και επεκτάσεις. Mitzenmacher s survey ESA 2009
56 Cuckoo Κατακερματισμός Απόδοση Μερικά προβλήματα και λύσεις: Υπάρχει περίπτωση η εισαγωγή ενός στοιχείου να καταλήξει σε αποτυχία αν δεν μπορεί να βρεθεί κενή θέση μετά από c logn ελέγχους, όπου c μία σταθερά (συνήθως c=6). Στην περίπτωση αυτή ολόκληρη η δομή κατασκευάζεται από την αρχή εισάγοντας τα n στοιχεία με διαφορετική σειρά, ή επιλέγοντας δύο διαφορετικές καθολικές συναρτήσεις h 1,h 2. Ευτυχώς έχει αποδειχθεί ότι η πιθανότητα να συμβεί αυτό είναι O(1/n). Η εισαγωγή n στοιχείων έχει αναμενόμενο κόστος O(n), συνεπώς η μέθοδος αυτή ανταγωνίζεται τον δυναμικό τέλειο κατακερματισμό (dynamic perfect hashing).
57 Bloom Φίλτρα
58 Bloom Φίλτρα - Η βασική ιδέα Όταν έχουμε ένα σύνολο ή μία λίστα, ο χώρος είναι πολύ σημαντικός, και δεν πειράζει να έχουμε false positives αλλά πειράζει να έχουμε false negatives στην αναζήτηση στοιχείων, τότε το Bloom φίλτρο είναι μία καλή εναλλακτική. Δοθέντος ενός συνόλου S = {x 1,x 2,,x n }, πρέπει να σχεδιαστεί μία δομή για να απαντά ταχύτατα σε ερωτήματα της μορφής «Είναι το y στο S;» Η δομή θα πρέπει να είναι: Γρήγορη (πιο γρήγορη από την αναζήτηση στο S). Μικρή (να έχει όσο το δυνατόν λιγότερα bits χώρου). Για να πετύχουμε τα παραπάνω επιτρέπουμε μία πιθανότητα λάθους για false positives: False positives: y S αλλά αναφέρεται ότι y S False negatives: y S αλλά αναφέρεται ότι y S
59 Bloom Φίλτρα - Η βασική ιδέα Έτσι οι δυνατές απαντήσεις στην ερώτηση «Είναι το y στο S;» είναι Πιθανόν το y να βρίσκεται στο S (με πιθανότητα p%). Σίγουρα το y δεν βρίσκεται στο S. Χρησιμοποιείται ένας πίνακας B μεγέθους m bits. Χρησιμοποιείται ένα προκαθορισμένο πλήθος k συναρτήσεων hash h i (x), i=1,,k, που κάνουν ομοιόμορφη κατανομή. Κάθε στοιχείο x απεικονίζεται από τις k συναρτήσεις σε k θέσεις τις οποίες ενεργοποιεί (θέτει το bit τους 1).
60 Bloom Φίλτρα B Ξεκινάμε με τον πίνακα Β των m bit γεμάτο με Απεικονίζουμε κάθε στοιχείο x j του S με τις k συναρτήσεις. Αν h i (x j )=a, τότε B[a]=1. B Για να ελέγξουμε αν το y είναι στο S, ελέγχουμε το B στα h i (y). Όλες οι k τιμές θα πρέπει να είναι 1. B Πιθανό να έχουμε false positives: όλες οι k τιμές είναι 1, αλλά το y δεν ανήκει στο S. B n στοιχεία m = cn bits k συναρτήσεις κατακερματισμού
61 Παράδειγμα Προσομοιωτής:
62 Παράδειγμα Ακόμα και ένα bit να είναι 0 στην αναζήτηση είμαστε σίγουροι ότι δεν υπάρχει το στοιχείο στην δομή
63 Παράδειγμα
64 Παράδειγμα Παρόλο που όλα τα bit είναι 1 στην αναζήτηση το στοιχείο δεν υπάρχει στην δομή (false positive)
65 Bloom Φίλτρα - Απόδοση Δεν επιτρέπονται οι διαγραφές στην δομή (μόνο εισαγωγές και αναζητήσεις). Επιτυγχάνεται κόστος Ο(1) σε κάθε περίπτωση για εισαγωγή και αναζήτηση, αλλά με την αναζήτηση να επιστρέφει και false positives. Η παράμετρος k (δηλαδή το πλήθος των συναρτήσεων hash που χρησιμοποιούνται) είναι σημαντική για το ποσοστό των false positives. Αποδεικνύεται ότι το βέλτιστο πλήθος συναρτήσεων το οποίο ελαχιστοποιεί την πιθανότητα των false positives είναι: m k = ln 2 n
66 Παράδειγμα Αν m/n = 8 False positive Βέλτιστο k = 8 ln 2 = Συναρτήσεις Κατακερματισμού
67 Στρατηγικές
68 Όταν ο πίνακας γεμίζει αρκετά Για τις μεθόδους κατακερματισμού με αλυσίδες μπορούμε να έχουμε αρκετά γεμάτο τον πίνακα (λ κοντά στο 1) χωρίς μεταβολές. Για τις μεθόδους ανοικτής διευθυνσιοδότησης καλό είναι να ο πίνακας hash να μην γεμίσει πάνω από το μισό. Αν συμβεί λ 1/2 τότε συστήνεται rehashing: Ο πίνακας επεκτείνεται κοντά στο διπλάσιο του μεγέθους του, όχι ακριβώς στο 2m (γιατί δεν είναι πρώτος) αλλά στον κοντινότερο πρώτο (όταν απαιτείται). Επιλέγεται μία νέα συνάρτηση κατακερματισμού (οι νέες) ή προσαρμόζονται οι παράμετροί τους. Γίνεται εισαγωγή όλων των στοιχείων στον εκτεταμένο πίνακα.
69 Όταν ο πίνακας γεμίζει αρκετά Η διαδικασία rehashing έχει περισσότερα πλεονεκτήματα από το να σχεδιάσουμε πιο πολύπλοκες στρατηγικές για να λύσουμε το πρόβλημα: Απαιτεί γραμμικό κόστος O(n). Τα στοιχεία απλώνονται στον διπλάσιο χώρο και η απόδοση βελτιώνεται σημαντικά (αποφεύγονται οι πολλές συγκρούσεις). Ορισμένες παράμετροι μπορούν να συντονιστούν ξανά. Δεν επιτρέπονται αποτυχίες (όπως με τον τετραγωνικό έλεγχο). Καθαρίζει ο πίνακας από όλα τα στοιχεία που σημειώθηκαν ως διαγραμμένα. Επιτρέπει την εκκίνηση με ένα μικρό μέγεθος πίνακα και το σταδιακό διπλασιασμό του όταν απαιτείται.
70 Μεγάλα σύνολα δεδομένων Αν έχουμε πολύ μεγάλα σύνολα δεδομένων (n>>m) που δεν μπορούν τα κλειδιά των στοιχείων τους να χωρέσουν σε πίνακα hash στην κύρια μνήμη; Μπορούμε να χρησιμοποιήσουμε πολλαπλά επίπεδα hash (όπως στον τέλειο κατακερματισμό) ώστε το 1 ο τουλάχιστον επίπεδο να χωράει στην μνήμη. Σε κάθε περίπτωση ένας (ή περισσότεροι πίνακες hash ανάλογα με την μέθοδο που θα εφαρμόσουμε) θα πρέπει να αποθηκευτούν στην δευτερεύουσα μνήμη. Έτσι χωρίζονται σε μπλοκ μεγέθους Β και δεικτοδοτούνται. Χρειάζονται καλές στρατηγικές για να μειώσουμε το I/O κόστος για τις βασικές πράξεις.
71 Επεκτάσιμος Κατακερματισμός (Extendible Hashing)
72 Επεκτάσιμος Κατακερματισμός Βασική Ιδέα: Κάθε τμήμα του πίνακα hash αποθηκεύεται σε ένα μπλοκ δίσκου (Β). Χρησιμοποιείται ένας κατάλογος δεικτών (directory) που χωράει σε ένα μπλοκ (ή περισσότερα) ο οποίος δεικτοδοτεί τα τμήματα του πίνακα. Αν γεμίσει ένα μπλοκ (υπερχείλιση) τότε θα πρέπει να κάνουμε rehashing. Αλλά το να διπλασιάσουμε το μέγεθος ολόκληρου του πίνακα (άρα και το πλήθος όλων των μπλοκ) είναι πολύ ακριβό. Στρατηγική: Αντί να διπλασιάσουμε όλη τη δομή, διπλασιάζουμε μόνο το μπλοκ που υπερχείλισε και διπλασιάζουμε τον κατάλογο (άρα και όσα μπλοκ αυτός έχει) ορίζοντας νέα αντιστοιχία. Ο κατάλογος είναι πολύ μικρότερος από το πλήθος όλων των μπλοκ και άρα ο διπλασιασμός του είναι πολύ φθηνότερος. Το κόλπο είναι το πώς θα ορίσουμε σωστά τη νέα αντιστοιχία.
73 Παράδειγμα Ο κατάλογος περιέχει ως στοιχεία τα k πρώτα bits των κλειδιών. Όλα τα κλειδιά με το ίδιο πρόθεμα (k-bits) δεικτοδοτούνται στο ίδιο μπλοκ. Αν χωράνε στο ίδιο μπλοκ δύο ή περισσότερες ομάδες κλειδιών, τότε ο κατάλογος δεικτοδοτεί τις ομάδες με κοινό πρόθεμα j k bits. directory (k=3) j (2) (2) (3) (3) (2)
74 Επεκτάσιμος Κατακερματισμός Η εισαγωγή νέου στοιχείου γίνεται ως εξής: Βρίσκουμε το μπλοκ b στο οποίο ανήκει. Αν υπάρχει χώρος το τοποθετούμε εκεί. Διαφορετικά, αν το μπλοκ είναι γεμάτο, κάνουμε διάσπαση (split): Αυξάνουμε το j του μπλοκ b κατά 1. Δημιουργούμε καινούργιο μπλοκ b με το νέο j. Μοιράζουμε τα κλειδιά ανάλογα με το πρόθεμά τους. Προσθέτουμε τον δείκτη του b στον κατάλογο.
75 Εισαγωγή χωρίς διάσπαση Χρειάζονται μόνο 2 Ι/Ος (2) (2) (3) (3) (2) insert(11011) (2) (2) (3) (3) (2)
76 Εισαγωγή με διάσπαση insert(11000) Χρειάζονται μόνο 3 Ι/Ος (2) (2) (3) (3) (2) b (2) (2) (3) (3) (3) b (3) b
77 Εισαγωγή με επέκταση καταλόγου Η εισαγωγή του δεν μπορεί να γίνει καθώς δεν υπάρχει χώρος και ούτε μπορεί να γίνει διάσπαση μπλοκ. Η λύση; Επέκταση του καταλόγου προσθέτοντας ένα επιπλέον bit 0 ή 1 σε κάθε στοιχείο του και ενημερώνοντας την νέα αντιστοιχία με τα υπάρχοντα μπλοκ. 00 (2) insert(10010) (2) (2)
78 Επεκτάσιμος Κατακερματισμός Η διαγραφή στοιχείων γίνεται ακριβώς αντίστροφα με πιθανές συγχωνεύσεις. Αν έχουμε μαζικές εισαγωγές και διαγραφές τότε μπορεί να συμφέρει να κάνουμε rehashing για να πάρουμε την τελική δομή. Αν τα δεδομένα είναι τεράστια σε πλήθος και ο κατάλογος μεγαλώσει σημαντικά τότε έχουμε δύο επιλογές: Να μεγαλώσουμε τα τμήματα με τα στοιχεία να μην έχουν μέγεθος μόνο ένα μπλοκ Β αλλά 2Β, 3Β κλπ. Να οργανώσουμε τον κατάλογο σε Β-Δέντρο!
79 ΤΕΛΟΣ
Advanced Data Indexing
Advanced Data Indexing (Προηγμένη ευρετηρίαση δεδομένων) Κατακερματισμός Hashing (1ο Μέρος) Η Αναζήτηση απαιτεί Δομές Λύσεις Για να υποστηριχθεί η αποδοτική αναζήτηση απαιτείται η χρήση κατάλληλων δομών-ευρετηρίων
Διαβάστε περισσότεραΠροηγμένη Ευρετηρίαση Δεδομένων (ΠΜΣ) Ενδεικτικές ερωτήσεις-θέματα για την εξέταση της θεωρίας
Προηγμένη Ευρετηρίαση Δεδομένων (ΠΜΣ) Ενδεικτικές ερωτήσεις-θέματα για την εξέταση της θεωρίας 1. Πως δομούνται οι ιεραρχικές μνήμες; Αναφέρετε τα διάφορα επίπεδά τους από τον επεξεργαστή μέχρι τη δευτερεύουσα
Διαβάστε περισσότεραΔιάλεξη 23: Τεχνικές Κατακερματισμού II (Hashing)
ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 1 Διάλεξη 23: Τεχνικές Κατακερματισμού II (Hashing) Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Διαχείριση Συγκρούσεων με Ανοικτή Διεύθυνση a) Linear
Διαβάστε περισσότεραΔομές Δεδομένων και Αλγόριθμοι
Δομές Δεδομένων και Αλγόριθμοι Χρήστος Γκόγκος ΤΕΙ Ηπείρου Χειμερινό Εξάμηνο 2014-2015 Παρουσίαση 19 Hashing - Κατακερματισμός 1 / 23 Πίνακες απευθείας πρόσβασης (Direct Access Tables) Οι πίνακες απευθείας
Διαβάστε περισσότεραΠίνακες Διασποράς. Χρησιμοποιούμε ένα πίνακα διασποράς T και μια συνάρτηση διασποράς h. Ένα στοιχείο με κλειδί k αποθηκεύεται στη θέση
Πίνακες Διασποράς Χρησιμοποιούμε ένα πίνακα διασποράς T και μια συνάρτηση διασποράς h Ένα στοιχείο με κλειδί k αποθηκεύεται στη θέση κλειδί k T 0 1 2 3 4 5 6 7 U : χώρος πιθανών κλειδιών Τ : πίνακας μεγέθους
Διαβάστε περισσότεραΚατακερματισμός. 4/3/2009 Μ.Χατζόπουλος 1
Κατακερματισμός 4/3/2009 Μ.Χατζόπουλος 1 H ιδέα που βρίσκεται πίσω από την τεχνική του κατακερματισμού είναι να δίνεται μια συνάρτησης h, που λέγεται συνάρτηση κατακερματισμού ή παραγωγής τυχαίων τιμών
Διαβάστε περισσότεραΟργάνωση αρχείων: πως είναι τοποθετηµένες οι εγγραφές ενός αρχείου όταν αποθηκεύονται στο δίσκο
Κατακερµατισµός 1 Οργάνωση Αρχείων (σύνοψη) Οργάνωση αρχείων: πως είναι τοποθετηµένες οι εγγραφές ενός αρχείου όταν αποθηκεύονται στο δίσκο 1. Αρχεία Σωρού 2. Ταξινοµηµένα Αρχεία Φυσική διάταξη των εγγραφών
Διαβάστε περισσότεραΔομές Δεδομένων. Δημήτρης Μιχαήλ. Κατακερματισμός. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο
Δομές Δεδομένων Κατακερματισμός Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Λεξικό Dictionary Ένα λεξικό (dictionary) είναι ένας αφηρημένος τύπος δεδομένων (ΑΤΔ) που διατηρεί
Διαβάστε περισσότεραΟ ΑΤΔ Λεξικό. Σύνολο στοιχείων με βασικές πράξεις: Δημιουργία Εισαγωγή Διαγραφή Μέλος. Υλοποιήσεις
Ο ΑΤΔ Λεξικό Σύνολο στοιχείων με βασικές πράξεις: Δημιουργία Εισαγωγή Διαγραφή Μέλος Υλοποιήσεις Πίνακας με στοιχεία bit (0 ή 1) (bit vector) Λίστα ακολουθιακή (πίνακας) ή συνδεδεμένη Είναι γνωστό το μέγιστο
Διαβάστε περισσότεραΔυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1
Δυναμικός Κατακερματισμός 1 Κατακερματισμός Τι αποθηκεύουμε στους κάδους; Στα παραδείγματα δείχνουμε μόνο την τιμή του πεδίου κατακερματισμού Την ίδια την εγγραφή (ως τρόπος οργάνωσης αρχείου) μέγεθος
Διαβάστε περισσότεραΚατακερματισμός (Hashing)
Κατακερματισμός (Hashing) O κατακερματισμός είναι μια τεχνική οργάνωσης ενός αρχείου. Είναι αρκετά δημοφιλής μέθοδος για την οργάνωση αρχείων Βάσεων Δεδομένων, καθώς βοηθάει σημαντικά στην γρήγορη αναζήτηση
Διαβάστε περισσότεραΔυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1
Δυναμικός Κατακερματισμός Βάσεις Δεδομένων 2013-2014 Ευαγγελία Πιτουρά 1 Κατακερματισμός Τι αποθηκεύουμε στους κάδους; Στα παραδείγματα δείχνουμε μόνο την τιμή του πεδίου κατακερματισμού Την ίδια την εγγραφή
Διαβάστε περισσότεραΔυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1
Δυναμικός Κατακερματισμός Βάσεις Δεδομένων 2018-2019 1 Κατακερματισμός Πρόβλημα στατικού κατακερματισμού: Έστω Μ κάδους και r εγγραφές ανά κάδο - το πολύ Μ * r εγγραφές (αλλιώς μεγάλες αλυσίδες υπερχείλισης)
Διαβάστε περισσότεραΔυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1
Δυναμικός Κατακερματισμός Βάσεις Δεδομένων 2017-2018 1 Κατακερματισμός Πρόβλημα στατικού κατακερματισμού: Έστω Μ κάδους και r εγγραφές ανά κάδο - το πολύ Μ * r εγγραφές (αλλιώς μεγάλες αλυσίδες υπερχείλισης)
Διαβάστε περισσότεραΤα δεδομένα (περιεχόμενο) μιας βάσης δεδομένων αποθηκεύεται στο δίσκο
Κατακερματισμός 1 Αποθήκευση εδομένων (σύνοψη) Τα δεδομένα (περιεχόμενο) μιας βάσης δεδομένων αποθηκεύεται στο δίσκο Παραδοσιακά, μία σχέση (πίνακας/στιγμιότυπο) αποθηκεύεται σε ένα αρχείο Αρχείο δεδομένων
Διαβάστε περισσότεραΠίνακες Συμβόλων. εισαγωγή αναζήτηση επιλογή. εισαγωγή. αναζήτηση
Πίνακες Συμβόλων χειρότερη περίπτωση μέση περίπτωση εισαγωγή αναζήτηση επιλογή εισαγωγή αναζήτηση διατεταγμένος πίνακας διατεταγμένη λίστα μη διατεταγμένος πίνακας μη διατεταγμένη λίστα δένδρο αναζήτησης
Διαβάστε περισσότεραΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δομές Δεδομένων. Ιωάννης Γ. Τόλλης Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Δομές Δεδομένων Ιωάννης Γ. Τόλλης Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού
Διαβάστε περισσότεραΔυναμικά Σύνολα. Δυναμικό σύνολο. Tα στοιχεία του μεταβάλλονται μέσω εντολών εισαγωγής και διαγραφής. διαγραφή. εισαγωγή
Δυναμικά Σύνολα Δυναμικό σύνολο Tα στοιχεία του μεταβάλλονται μέσω εντολών εισαγωγής και διαγραφής διαγραφή εισαγωγή Δυναμικά Σύνολα Δυναμικό σύνολο Tα στοιχεία του μεταβάλλονται μέσω εντολών εισαγωγής
Διαβάστε περισσότεραCuckoo Hashing. Αλγόριθμοι και Πολυπλοκότητα. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο
Cuckoo Hashing Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο β Πολυτεχνείο Πρόβλημα (ADT) Λεξικού υναμικά μεταβαλλόμενη συλλογή αντικειμένων που αναγνωρίζονται με «κλειδί» (π.χ.
Διαβάστε περισσότεραΔιάλεξη 23: Τεχνικές Κατακερματισμού II (Hashing)
Διάλεξη 23: Τεχνικές Κατακερματισμού II (Hashing) Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Διαχείριση Συγκρούσεων με Ανοικτή Διεύθυνση a) Linear Probing, b) Quadratic Probing c) Double
Διαβάστε περισσότερα10. Πίνακες Κατακερματισμού
Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 10. Πίνακες Κατακερματισμού 2 ομές εδομένων 4 5 Χρήστος ουλκερίδης Τμήμα Ψηφιακών Συστημάτων 16/12/2016 Πίνακες
Διαβάστε περισσότεραΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΙI
ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΙI Δομές Ευρετηρίων και Κατακερματισμός Αρχείων II Β. Μεγαλοοικονόμου Δ. Χριστοδουλάκης (παρουσίαση βασισμένη εν μέρη σε σημειώσεις των Silberchatz, Korth και
Διαβάστε περισσότεραΔυναμικός Κατακερματισμός
Δυναμικός Κατακερματισμός Καλό για βάση δεδομένων που μεγαλώνει και συρρικνώνεται σε μέγεθος Επιτρέπει τη δυναμική τροποποίηση της συνάρτησης κατακερματισμού Επεκτάσιμος κατακερματισμός μια μορφή δυναμικού
Διαβάστε περισσότεραΔομές Δεδομένων. Κατακερματισμός. Δομές Δεδομένων & Αλγόριθμοι. Εργαστήριο Γνώσης και Ευφυούς Πληροφορικής 1
Δομές Δεδομένων Κατακερματισμός Πληροφορικής 1 Πρόβλημα Insert, Search και DELETE εγγραφής Σε σταθερό χρόνο Σε πίνακα εγγραφών όπου το πεδίο τιμών στα κλειδιά >> Μέγεθος Πίνακα (M) το πλήθος των εγγραφών
Διαβάστε περισσότεραΔομές Αναζήτησης. εισαγωγή αναζήτηση επιλογή. εισαγωγή. αναζήτηση
Δομές Αναζήτησης χειρότερη περίπτωση μέση περίπτωση εισαγωγή αναζήτηση επιλογή εισαγωγή αναζήτηση διατεταγμένος πίνακας διατεταγμένη λίστα μη διατεταγμένος πίνακας μη διατεταγμένη λίστα δένδρο αναζήτησης
Διαβάστε περισσότεραΔυναμικά Σύνολα. Δυναμικό σύνολο. Tα στοιχεία του μεταβάλλονται μέσω εντολών εισαγωγής και διαγραφής. διαγραφή. εισαγωγή
Δυναμικά Σύνολα Δυναμικό σύνολο Tα στοιχεία του μεταβάλλονται μέσω εντολών εισαγωγής και διαγραφής διαγραφή εισαγωγή Δυναμικά Σύνολα Δυναμικό σύνολο Tα στοιχεία του μεταβάλλονται μέσω εντολών εισαγωγής
Διαβάστε περισσότεραΔιδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ
Διάλεξη 25: Τεχνικές Κατακερματισμού II Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Διαχείριση Συγκρούσεων με Ανοικτή Διεύθυνση a) Linear Probing, b) Quadratic Probing c) Double Hashing Διατεταγμένος
Διαβάστε περισσότεραΠίνακες (Μια παλιά άσκηση) Πίνακες Κατακερματισμού (Hash Tables) Πίνακες (Μια παλιά άσκηση) Εισαγωγή. A n
Πίνακες (Μια παλιά άσκηση) Πίνακες Κατακερματισμού (Hash Tables) Ορέστης Τελέλης telelis@unipi.gr Τμήμα Ψηφιακών Συστημάτων, Πανεπιστήμιο Πειραιώς A n O(1) (στην πρώτη ελέυθερη θέση στο τέλος του πίνακα).
Διαβάστε περισσότεραΔυναμικά Σύνολα. Δυναμικό σύνολο. Tα στοιχεία του μεταβάλλονται μέσω εντολών εισαγωγής και διαγραφής. διαγραφή. εισαγωγή
Δυναμικά Σύνολα Δυναμικό σύνολο Tα στοιχεία του μεταβάλλονται μέσω εντολών εισαγωγής και διαγραφής διαγραφή εισαγωγή Δυναμικά Σύνολα Δυναμικό σύνολο Tα στοιχεία του μεταβάλλονται μέσω εντολών εισαγωγής
Διαβάστε περισσότεραΔομές Δεδομένων. Ενότητα 11: Τεχνικές Κατακερματισμού. Καθηγήτρια Μαρία Σατρατζέμη. Τμήμα Εφαρμοσμένης Πληροφορικής.
Ενότητα 11: Τεχνικές Κατακερματισμού Καθηγήτρια Μαρία Σατρατζέμη Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται
Διαβάστε περισσότεραΕΝΟΤΗΤΑ 8 KATAKEΡΜΑΤΙΣΜΟΣ (HASHING)
ΕΝΟΤΗΤΑ 8 KATAKEΡΜΑΤΙΣΜΟΣ (HASHING) Κατακερµατισµός Στόχος Έχουµε ένα σύνολο από κλειδιά {Κ 0,, Κ n-1 } και θέλουµε να υλοποιήσουµε Insert() και LookUp() (ίσως και Delete()) απλά και γρήγορα στην πράξη.
Διαβάστε περισσότεραΕνότητα 6: Κατακερματισμός Ασκήσεις και Λύσεις
ΗΥ2, Ενότητα : Ασκήσεις και Λύσεις Ενότητα : Κατακερματισμός Ασκήσεις και Λύσεις Άσκηση 1 Χρησιμοποιήστε τη συνάρτηση κατακερματισμού της διαίρεσης ως πρωτεύουσα συνάρτηση κατακερματισμού και τη συνάρτηση
Διαβάστε περισσότεραAdvanced Data Indexing
Advanced Data Indexing (Προηγμένη ευρετηρίαση δεδομένων) Αναζήτηση Δέντρα (2 ο Μέρος) Διαχρονικά -Δέντρα (Persistent -trees) Σε μερικές εφαρμογές βάσεων/δομών δεδομένων όπου γίνονται ενημερώσεις μας ενδιαφέρει
Διαβάστε περισσότεραΕξωτερική Αναζήτηση. Ιεραρχία Μνήμης Υπολογιστή. Εξωτερική Μνήμη. Εσωτερική Μνήμη. Κρυφή Μνήμη (Cache) Καταχωρητές (Registers) μεγαλύτερη ταχύτητα
Ιεραρχία Μνήμης Υπολογιστή Εξωτερική Μνήμη Εσωτερική Μνήμη Κρυφή Μνήμη (Cache) μεγαλύτερη χωρητικότητα Καταχωρητές (Registers) Κεντρική Μονάδα (CPU) μεγαλύτερη ταχύτητα Πολλές σημαντικές εφαρμογές διαχειρίζονται
Διαβάστε περισσότεραΔομές Δεδομένων. Ενότητα 12: Κατακερματισμός: Χειρισμός Συγκρούσεων. Καθηγήτρια Μαρία Σατρατζέμη. Τμήμα Εφαρμοσμένης Πληροφορικής.
Ενότητα 12: Κατακερματισμός: Χειρισμός Συγκρούσεων Καθηγήτρια Μαρία Σατρατζέμη Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες,
Διαβάστε περισσότεραΚατακερµατισµός. Οργάνωση Αρχείων (σύνοψη) Οργάνωση αρχείων: πως είναι τοποθετημένες οι εγγραφές ενός αρχείου όταν αποθηκεύονται στο δίσκο
Κατακερµατισµός 1 Οργάνωση Αρχείων (σύνοψη) Οργάνωση αρχείων: πως είναι τοποθετημένες οι εγγραφές ενός αρχείου όταν αποθηκεύονται στο δίσκο 1. Αρχεία Σωρού 2. Ταξινομημένα Αρχεία Φυσική διάταξη των εγγραφών
Διαβάστε περισσότεραΚΑΤΑΚΕΡΜΑΤΙΣΜΟΣ HASHING
ΚΑΤΑΚΕΡΜΑΤΙΣΜΟΣ HASHING ΣΑΛΤΟΓΙΑΝΝΗ ΑΘΑΝΑΣΙΑ saltogiann@ceid.upatras.gr ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΤΟ ΠΡOΒΛΗΜΑ ΤΟΥ ΚΑΤΑΚΕΡΜΑΤΙΣΜΟY Θέλουμε τα δεδομένα που διαθέτουμε να μπορούν να αποθηκευτούν σε κάποιο πίνακα ή
Διαβάστε περισσότεραΚεφ.11: Ευρετήρια και Κατακερματισμός
Κεφ.11: Ευρετήρια και Κατακερματισμός Database System Concepts, 6 th Ed. See www.db-book.com for conditions on re-use Κεφ. 11: Ευρετήρια-Βασική θεωρία Μηχανισμοί ευρετηρίου χρησιμοποιούνται για την επιτάχυνση
Διαβάστε περισσότεραΣύνοψη Προηγούμενου. Πίνακες (Arrays) Πίνακες (Arrays): Βασικές Λειτουργίες. Πίνακες (Arrays) Ορέστης Τελέλης
Σύνοψη Προηγούμενου Πίνακες (Arrays Ορέστης Τελέλης telelis@unipi.gr Τμήμα Ψηφιακών Συστημάτων, Πανεπιστήμιο Πειραιώς Διαδικαστικά θέματα. Aντικείμενο Μαθήματος. Aντικείμενα, Κλάσεις, Μέθοδοι, Μεταβλητές.
Διαβάστε περισσότεραΒάσεις Δεδομένων ΙΙ Ενότητα 7
Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Βάσεις Δεδομένων ΙΙ Ενότητα 7: Δομές Ευρετηρίων Κατακερματισμός Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται
Διαβάστε περισσότεραΠανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων
Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 2. Πίνακες 45 23 28 95 71 19 30 2 ομές εδομένων 4 5 Χρήστος ουλκερίδης Τμήμα Ψηφιακών Συστημάτων 12/10/2017
Διαβάστε περισσότεραΟι βασικές λειτουργίες (ή πράξεις) που γίνονται σε μια δομή δεδομένων είναι:
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Μια δομή δεδομένων στην πληροφορική, συχνά αναπαριστά οντότητες του φυσικού κόσμου στον υπολογιστή. Για την αναπαράσταση αυτή, δημιουργούμε πρώτα ένα αφηρημένο μοντέλο στο οποίο προσδιορίζονται
Διαβάστε περισσότεραΠανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων
Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 2. Πίνακες 45 23 28 95 71 19 30 2 ομές εδομένων 4 5 Χρήστος ουλκερίδης Τμήμα Ψηφιακών Συστημάτων 21/10/2016
Διαβάστε περισσότεραΣυναρτήσεις Κατακερματισμού και Πίνακες Κατακερματισμού
Μια συνάρτηση κατακερματισμού (hash function) h απεικονίζει κλειδιά ενός δοσμένου τύπου σεακεραίουςενόςσταθερούδιαστήματος [0,N 1]όπουΝτομέγεθοςτουπίνακα. Πχ: Συναρτήσεις Κατακερματισμού και Πίνακες Κατακερματισμού
Διαβάστε περισσότερα5. Απλή Ταξινόμηση. ομές εδομένων. Χρήστος ουλκερίδης. Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων
Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 5. Απλή Ταξινόμηση 2 ομές εδομένων 4 5 Χρήστος ουλκερίδης Τμήμα Ψηφιακών Συστημάτων 11/11/2016 Εισαγωγή Η
Διαβάστε περισσότεραΔυναμικά Πολυεπίπεδα Ευρετήρια (Β-δένδρα) Μ.Χατζόπουλος 1
Δυναμικά Πολυεπίπεδα Ευρετήρια (Β-δένδρα) Μ.Χατζόπουλος 1 Α Β Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ.Χατζόπουλος 2 Δένδρο αναζήτησης είναι ένας ειδικός τύπος δένδρου που χρησιμοποιείται για να καθοδηγήσει την αναζήτηση μιας
Διαβάστε περισσότεραΦροντιστήριο Αποθήκευση σε δίσκο, βασικές οργανώσεις αρχείων κατακερματισμός και δομές ευρετηρίων για αρχεία
ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι Φροντιστήριο 17-1-2011 Αποθήκευση σε δίσκο, βασικές οργανώσεις αρχείων κατακερματισμός και δομές ευρετηρίων για αρχεία Θεωρία Άτρακτος/αυλάκι : ομόκεντροι κύκλοι στον δίσκο Κύλινδρος:
Διαβάστε περισσότεραΛΥΣΗ ΤΗΣ ΔΕΥΤΕΡΗΣ ΑΣΚΗΣΗΣ Όλγα Γκουντούνα
ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΜΑΘΗΜΑ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΑΚΑΔ. ΕΤΟΣ 2011-12 ΔΙΔΑΣΚΟΝΤΕΣ Ιωάννης Βασιλείου Καθηγητής Τιμολέων Σελλής Καθηγητής Άσκηση 1
Διαβάστε περισσότεραΔιαχρονικές δομές δεδομένων
Διαχρονικές δομές δεδομένων Μια τυπική δομή δεδομένων μεταβάλλεται με πράξεις εισαγωγής ή διαγραφής Π.χ. κοκκινόμαυρο δένδρο εισαγωγή 0 18 0 5 39 73 1 46 6 80 Αποκατάσταση ισορροπίας 5 39 73 0 46 6 80
Διαβάστε περισσότεραΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δομές δεδομένων. Ενότητα 6η: Κατακερματισμός Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών
ΕΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Δομές δεδομένων Ενότητα 6η: Κατακερματισμός Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών Ενότητα 6 Κατακερματισμός ΗΥ240 - Παναγιώτα Φατούρου 2 Κατακερματισμός -
Διαβάστε περισσότεραAdvanced Data Indexing
Advanced Data Indexing (Προηγμένη ευρετηρίαση δεδομένων) Αναζήτηση Δέντρα ( ο Μέρος) Αναζήτηση (Searching) Η Αναζήτηση Searching (Αναζήτηση) ενός αντικειμένου μέσα από N ταξινομημένα αντικείμενα. Είναι
Διαβάστε περισσότεραΔιάλεξη 22: Τεχνικές Κατακερματισμού I (Hashing)
Διάλεξη 22: Τεχνικές Κατακερματισμού I (Hashing) Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Ανασκόπηση Προβλήματος και Προκαταρκτικών Λύσεων Bit Διανύσματα Τεχνικές Κατακερματισμού & Συναρτήσεις
Διαβάστε περισσότεραΔοµές Δεδοµένων. 16η Διάλεξη Κατακερµατισµός. Ε. Μαρκάκης
Δοµές Δεδοµένων 16η Διάλεξη Κατακερµατισµός Ε. Μαρκάκης Περίληψη Συναρτήσεις κατακερµατισµού Χωριστή αλυσίδωση Γραµµική διερεύνηση Διπλός κατακερµατισµός Δυναµικός κατακερµατισµός Προοπτική Δοµές Δεδοµένων
Διαβάστε περισσότεραΒάσεις Δεδομένων. Αποθήκευση σε δίσκο, βασικές οργανώσεις αρχείων, κατακερματισμός και δομές ευρετηρίων για αρχεία. Φροντιστήριο 7 o
Βάσεις Δεδομένων Αποθήκευση σε δίσκο, βασικές οργανώσεις αρχείων, κατακερματισμός και δομές ευρετηρίων για αρχεία Φροντιστήριο 7 o 2-2-2008 Θεωρία Άτρακτος/αυλάκι : ομόκεντροι κύκλοι στον δίσκο Κύλινδρος:
Διαβάστε περισσότεραΣτην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα:
Τεχνικές Κατακερµατισµού Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Τεχνικές Κατακερµατισµού ιαχείριση Συγκρούσεων µε Αλυσίδωση ιαχείριση Συγκρούσεων µε Ανοικτή ιεύθυνση ιπλός Κατακερµατισµός,
Διαβάστε περισσότεραΑλγόριθμοι και Δομές Δεδομένων (IΙ) (γράφοι και δένδρα)
Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2016-17 Αλγόριθμοι και Δομές Δεδομένων (IΙ) (γράφοι και δένδρα) http://mixstef.github.io/courses/csintro/ Μ.Στεφανιδάκης Αφηρημένες
Διαβάστε περισσότεραΚεφάλαιο 7 Ιεραρχία Μνήμης (Memory Hierarchy)
Κεφάλαιο 7 Ιεραρχία Μνήμης (Memory Hierarchy) 1 Συστήματα Μνήμης Η οργάνωση του συστήματος μνήμης επηρεάζει τη λειτουργία και απόδοση ενός μικροεπεξεργαστή: Διαχείριση μνήμης και περιφερειακών (Ι/Ο) απότολειτουργικόσύστημα
Διαβάστε περισσότεραInsert (P) : Προσθέτει ένα νέο πρότυπο P στο λεξικό D. Delete (P) : Διαγράφει το πρότυπο P από το λεξικό D
Dynamic dictionary matching problem Έχουμε ένα σύνολο πρότυπων D = { P1, P2,..., Pk } oπου D το λεξικό και ένα αυθαίρετο κειμενο T [1,n] To σύνολο των πρότυπων αλλάζει με το χρόνο (ρεαλιστική συνθήκη).
Διαβάστε περισσότεραΕισαγωγή στην Επεξεργασία Ερωτήσεων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1
Εισαγωγή στην Επεξεργασία Ερωτήσεων 1 Επεξεργασία Ερωτήσεων Θα δούμε την «πορεία» μιας SQL ερώτησης (πως εκτελείται) Ερώτηση SQL Ερώτηση ΣΒΔ Αποτέλεσμα 2 Βήματα Επεξεργασίας Τα βασικά βήματα στην επεξεργασία
Διαβάστε περισσότεραΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΛΥΣΗ ΣΤΗΝ ΕΥΤΕΡΗ ΑΣΚΗΣΗ
ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΛΥΣΗ ΣΤΗΝ ΕΥΤΕΡΗ ΑΣΚΗΣΗ ΜΑΘΗΜΑ ΒΑΣΕΙΣ Ε ΟΜΕΝΩΝ ΑΚΑ. ΕΤΟΣ 2012-13 Ι ΑΣΚΟΝΤΕΣ Ιωάννης Βασιλείου Καθηγητής, Τοµέας Τεχνολογίας
Διαβάστε περισσότεραΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Συστήματα Διαχείρισης Βάσεων Δεδομένων Άσκηση 1 Δημήτρης Πλεξουσάκης Τμήμα Επιστήμης Υπολογιστών HY460 Συστήματα Διαχείρισης Βάσεων Δεδομένων Διδάσκοντες: Δημήτρης
Διαβάστε περισσότεραΛειτουργικά Συστήματα Η/Υ
Λειτουργικά Συστήματα Η/Υ Κεφάλαιο 7 «Διαχείριση Μνήμης» Διδάσκων: Δ. Λιαροκάπης Διαφάνειες: Π. Χατζηδούκας 1 Κύρια Μνήμη 1. Εισαγωγή 2. Βασική διαχείριση μνήμης 3. Μνήμη και πολυπρογραμματισμός 4. Τμηματοποίηση
Διαβάστε περισσότεραΚρυπτογραφία. Έλεγχος πρώτων αριθών-παραγοντοποίηση. Διαφάνειες: Άρης Παγουρτζής Πέτρος Ποτίκας
Κρυπτογραφία Έλεγχος πρώτων αριθών-παραγοντοποίηση Διαφάνειες: Άρης Παγουρτζής Πέτρος Ποτίκας Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Σχολή ΗΜΜΥ ΕΜΠ Κρυπτογραφία
Διαβάστε περισσότεραέντρα ομές εδομένων 3ο εξάμηνο ιδάσκων: Χρήστος ουλκερίδης ιαφάνειες προσαρμοσμένες από το υλικό της Μαρίας Χαλκίδη
έντρα 2-3-4 ομές εδομένων 3ο εξάμηνο ιδάσκων: Χρήστος ουλκερίδης ιαφάνειες προσαρμοσμένες από το υλικό της Μαρίας Χαλκίδη Σημερινό Μάθημα 2-3-4 έντρα Ισοζυγισμένα δέντρα αναζήτησης έντρα αναζήτησης πολλαπλών
Διαβάστε περισσότεραΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΝΕΥΡΩΝΙΚΑ ΔΙΚΤΥΑ
ΘΕΜΑ 1 ο (2,5 μονάδες) ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΝΕΥΡΩΝΙΚΑ ΔΙΚΤΥΑ Τελικές εξετάσεις Πέμπτη 21 Ιουνίου 2012 16:30-19:30 Υποθέστε ότι θέλουμε
Διαβάστε περισσότεραΜε τον όρο μνήμη αναφερόμαστε στα μέσα που χρησιμοποιούνται για την αποθήκευση προγραμμάτων και δεδομένων σε έναν υπολογιστή ή άλλη ψηφιακή
Μνήμη Με τον όρο μνήμη αναφερόμαστε στα μέσα που χρησιμοποιούνται για την αποθήκευση προγραμμάτων και δεδομένων σε έναν υπολογιστή ή άλλη ψηφιακή ηλεκτρονική συσκευή, σε προσωρινή ή μόνιμη βάση. Τα σύγχρονα
Διαβάστε περισσότεραΟργάνωση Υπολογιστών
Οργάνωση Υπολογιστών Επιμέλεια: Γεώργιος Θεοδωρίδης, Επίκουρος Καθηγητής Ανδρέας Εμερετλής, Υποψήφιος Διδάκτορας Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών 1 Άδειες Χρήσης Το παρόν υλικό
Διαβάστε περισσότεραAdvanced Data Indexing
Advanced Data Indexing (Προηγμένη ευρετηρίαση δεδομένων) Μοντέλα - Αλγόριθμοι Ταξινόμηση Μοντέλα Δευτερεύουσας Μνήμης I/O Αποδοτικοί Αλγόριθμοι Οι εσωτερικές τεχνικές caching και prefetching των Η/Υ είναι
Διαβάστε περισσότεραΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Δοµές Δεδοµένων
ΟΝΟΜΑΤΕΠΩΝΥΜΟ: ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ AM: Δοµές Δεδοµένων Εξεταστική Ιανουαρίου 2014 Διδάσκων : Ευάγγελος Μαρκάκης 20.01.2014 ΥΠΟΓΡΑΦΗ ΕΠΟΠΤΗ: Διάρκεια εξέτασης : 2 ώρες και
Διαβάστε περισσότεραεπιστρέφει το αμέσως μεγαλύτερο από το x στοιχείο του S επιστρέφει το αμέσως μικρότερο από το x στοιχείο του S
Μελετάμε την περίπτωση όπου αποθηκεύουμε ένα (δυναμικό) σύνολο στοιχειών,, τα οποίo είναι υποσύνολο του. Υποστηριζόμενες λειτουργίες αναζήτηση(s,x): εισαγωγή(s,x): διαγραφή(s,x): διάδοχος(s,x): προκάτοχος(s,x):
Διαβάστε περισσότεραΟργάνωση Αρχείων. Βάσεις Δεδομένων : Οργάνωση Αρχείων 1. Blobs
Αρχεία Τα δεδομένα συνήθως αποθηκεύονται σε αρχεία στο δίσκο Οργάνωση Αρχείων Η μεταφορά δεδομένων από το δίσκο στη μνήμη και από τη μνήμη στο δίσκο γίνεται σε μονάδες blocks Βασικός στόχος η ελαχιστοποίηση
Διαβάστε περισσότεραHY240 : Δομές Δεδομένων. Φροντιστήριο Προγραμματιστικής Εργασίας 2 ο και 3 ο Μέρος
HY240 : Δομές Δεδομένων Φροντιστήριο Προγραμματιστικής Εργασίας 2 ο και 3 ο Μέρος Εισαγωγή Στο 2 ο μέρος της εργασίας θα πρέπει να γίνουν τροποποιήσεις στο πρόγραμμα που προέκυψε κατά την υλοποίηση του
Διαβάστε περισσότεραΔεντρικά Ευρετήρια. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1
Δεντρικά Ευρετήρια Βάσεις Δεδομένων 2017-2018 1 Δέντρα Αναζήτησης Ένα δέντρο αναζήτησης (search tree) τάξεως p είναι ένα δέντρο τέτοιο ώστε κάθε κόμβος του περιέχει το πολύ p - 1 τιμές αναζήτησης και ρ
Διαβάστε περισσότεραΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ
ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ www.cslab.ece.ntua.gr ΑΡΧΙΤΕΚΤΟΝΙΚΗ
Διαβάστε περισσότεραΠρωτόκολλα Ελέγχου προσπέλασης μέσου
Πρωτόκολλα Ελέγχου προσπέλασης μέσου Πρόβλημα: ταυτόχρονη μετάδοση δύο ή περισσότερων κόμβων στο ίδιο κανάλι (μήκος κύματος). Ένα τέτοιο γεγονός ονομάζεται σύγκρουση. Ένα πρωτόκολλο MAC έχει συνήθως ως
Διαβάστε περισσότεραΚεφάλαιο 13. Αποθήκευση σε ίσκους, Βασικές οµέςαρχείων, και Κατακερµατισµός. ιαφάνεια 13-1
ιαφάνεια 13-1 Κεφάλαιο 13 Αποθήκευση σε ίσκους, Βασικές οµέςαρχείων, και Κατακερµατισµός ίαβλος, Επιµ.Μ.Χατζόπουλος 1 Γιατί θα µιλήσουµε Μονάδες Αποθήκευσης ίσκων Αρχεία Εγγραφών Πράξεις σε αρχεία Αρχεία
Διαβάστε περισσότερα- Εισαγωγή - Επίπεδα μνήμης - Ολοκληρωμένα κυκλώματα μνήμης - Συσκευασίες μνήμης προσωπικών υπολογιστών
Μάθημα 4.5 Η Μνήμη - Εισαγωγή - Επίπεδα μνήμης - Ολοκληρωμένα κυκλώματα μνήμης - Συσκευασίες μνήμης προσωπικών υπολογιστών Όταν ολοκληρώσεις το μάθημα αυτό θα μπορείς: Να αναφέρεις τα κυριότερα είδη μνήμης
Διαβάστε περισσότεραΕιδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων
Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων Άσκηση 1 α) Η δομή σταθμισμένης ένωσης με συμπίεση διαδρομής μπορεί να τροποποιηθεί πολύ εύκολα ώστε να υποστηρίζει τις
Διαβάστε περισσότεραΔομές Δεδομένων & Αλγόριθμοι
- Πίνακες 1 Πίνακες Οι πίνακες έχουν σταθερό μέγεθος και τύπο δεδομένων. Βασικά πλεονεκτήματά τους είναι η απλότητα προγραμματισμού τους και η ταχύτητα. Ωστόσο δεν παρέχουν την ευελιξία η οποία απαιτείται
Διαβάστε περισσότεραΠανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Τμήμα Πληροφορικής
Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Τμήμα Πληροφορικής Άσκηση : Λυμένες Ασκήσεις Έστω ένα σύστημα μνήμης, στο οποίο έχουμε προσθέσει μια κρυφή μνήμη θυμάτων 6 θέσεων
Διαβάστε περισσότεραΚεφάλαιο 13 Αντισταθμιστική Ανάλυση
Κεφάλαιο 13 Αντισταθμιστική Ανάλυση Περιεχόμενα 13.1 Αντισταθμιστική Ανάλυση... 248 13.2 Μέθοδοι Αντισταθμιστικής Ανάλυσης... 250 13.2.1 Η χρεωπιστωτική μέθοδος... 250 13.2.2 Η ενεργειακή μέθοδος... 251
Διαβάστε περισσότεραΑντισταθμιστική ανάλυση
Αντισταθμιστική ανάλυση Θεωρήστε έναν αλγόριθμο Α που χρησιμοποιεί μια δομή δεδομένων Δ : Κατά τη διάρκεια εκτέλεσης του Α η Δ πραγματοποιεί μία ακολουθία από πράξεις. Παράδειγμα: Θυμηθείτε το πρόβλημα
Διαβάστε περισσότεραΕρωτήσεις πολλαπλής επιλογής - Κεφάλαιο Κάθε δομή μπορεί να χρησιμοποιηθεί σε οποιοδήποτε πρόβλημα ή εφαρμογή
Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 3 1. Κάθε δομή μπορεί να χρησιμοποιηθεί σε οποιοδήποτε πρόβλημα ή εφαρμογή 2. Δυναμικές είναι οι δομές που αποθηκεύονται σε συνεχόμενες θέσεις μνήμης 3. Ένας πίνακας
Διαβάστε περισσότεραi Στα σύγχρονα συστήματα η κύρια μνήμη δεν συνδέεται απευθείας με τον επεξεργαστή
Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2015-16 Τεχνολογίες Κύριας (και η ανάγκη για χρήση ιεραρχιών μνήμης) http://di.ionio.gr/~mistral/tp/comparch/ Μ.Στεφανιδάκης i Στα σύγχρονα
Διαβάστε περισσότεραΆσκηση 1. με κόκκινο χρώμα σημειώνονται οι κρίσιμοι κόμβοι
Άσκηση 1 α) Παρουσιάστε τα AVL δέντρα που προκύπτουν από τις εισαγωγές των κλειδιών 1, 4, 9,, 7,,, 1, 4 και σε ένα αρχικά άδειο AVL δέντρο με κόκκινο χρώμα σημειώνονται οι κρίσιμοι κόμβοι +4 +9 + 1 1 1
Διαβάστε περισσότεραΔιδάσκων: Κωνσταντίνος Κώστα
Διάλεξη Ε7: Επανάληψη Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Hashing, Final Exam Διδάσκων: Κωνσταντίνος Κώστα ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. και Μηχ. Υπολ. Ε7-1
Διαβάστε περισσότεραΤυχαιοκρατικοί Αλγόριθμοι
Πιθανότητες και Αλγόριθμοι Ανάλυση μέσης περίπτωσης Μελέτα τη συμπεριφορά ενός αλγορίθμου σε μια «μέση» είσοδο (ως προς κάποια κατανομή) Τυχαιοκρατικός αλγόριθμος Λαμβάνει τυχαίες αποφάσεις καθώς επεξεργάζεται
Διαβάστε περισσότεραΟργάνωση Αρχείων. Βάσεις Δεδομένων : Οργάνωση Αρχείων 1. Blobs
Αρχεία Τα δεδομένα συνήθως αποθηκεύονται σε αρχεία στο δίσκο Οργάνωση Αρχείων Η μεταφορά δεδομένων από το δίσκο στη μνήμη και από τη μνήμη στο δίσκο γίνεται σε μονάδες blocks Βασικός στόχος η ελαχιστοποίηση
Διαβάστε περισσότεραΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι ΔΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ. Διδάσκοντες: Καθ. Κ. Λαμπρινουδάκης Δρ. Α. Γαλάνη Λειτουργικά Συστήματα
ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι Μάθημα: ΔΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ Διδάσκοντες: Καθ. Κ. Λαμπρινουδάκης (clam@unipi.gr) Δρ. Α. Γαλάνη (agalani@unipi.gr) 1 ΜΕΓΕΘΟΣ ΣΕΛΙΔΑΣ To μέγεθος σελίδας είναι μία παράμετρος που μπορεί
Διαβάστε περισσότεραΑσκήσεις Caches
Ασκήσεις Caches 1 Άσκηση 1η Θεωρήστε ένα σύστημα μνήμης με μία cache: 4-way set associative μεγέθους 256ΚΒ, με cache line 8 λέξεων. Χαρακτηριστικά συστήματος μνήμης: μέγεθος της λέξης είναι 32 bits. 1
Διαβάστε περισσότερα6η Δραστηριότητα. Ναυμαχία Αλγόριθμοι αναζήτησης. Περίληψη. Αντιστοιχία με το σχολικό πρόγραμμα * Ικανότητες. Ηλικία. Υλικά
6η Δραστηριότητα Ναυμαχία Αλγόριθμοι αναζήτησης Περίληψη Συχνά ζητάμε από τους υπολογιστές να ψάξουν πληροφορίες στο εσωτερικό μεγάλων αρχείων δεδομένων. Για να το καταφέρουν, απαιτούνται ταχείες και αποτελεσματικές
Διαβάστε περισσότεραΑρχιτεκτονική Υπολογιστών II 16-2-2012. Ενδεικτικές απαντήσεις στα θέματα των εξετάσεων
Αρχιτεκτονική Υπολογιστών II 6 --0 Ενδεικτικές απαντήσεις στα θέματα των εξετάσεων Θέμα. Τι γνωρίζετε για την τοπικότητα των αναφορών και ποιών μονάδων του υπολογιστή ή τεχνικών η απόδοση εξαρτάται από
Διαβάστε περισσότεραΕισαγωγή ενός νέου στοιχείου. Επιλογή i-οστoύ στοιχείου : Εύρεση στοιχείου με το i-οστό μικρότερο κλειδί
Δομές Αναζήτησης Χειριζόμαστε ένα σύνολο στοιχείων κλειδί από ολικά διατεταγμένο σύνολο όπου το κάθε στοιχείο έχει ένα Θέλουμε να υποστηρίξουμε δύο βασικές λειτουργίες: Εισαγωγή ενός νέου στοιχείου με
Διαβάστε περισσότεραΔομές Δεδομένων. Ενότητα 4: Ο ΑΤΔ Λίστα & Υλοποίηση Λίστας με σειριακή αποθήκευση- Ο ΑΤΔ Συνδεδεμένη Λίστα- Υλοποίηση ΑΤΔ Συνδεδεμένη Λίστα με πίνακα
Ενότητα 4: Ο ΑΤΔ Λίστα & Υλοποίηση Λίστας με σειριακή αποθήκευση- Ο ΑΤΔ Συνδεδεμένη Λίστα- Υλοποίηση ΑΤΔ Συνδεδεμένη Λίστα με πίνακα Καθηγήτρια Μαρία Σατρατζέμη Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό
Διαβάστε περισσότεραΔεντρικά Ευρετήρια. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1
Δεντρικά Ευρετήρια 1 Δέντρα Αναζήτησης Ένα δέντρο αναζήτησης (search tree) τάξεως p είναι ένα δέντρο τέτοιο ώστε κάθε κόμβος του περιέχει το πολύ p - 1 τιμές αναζήτησης και ρ δείκτες ως εξής P 1 K 1 P
Διαβάστε περισσότεραΔιάλεξη 14: Δέντρα IV B Δένδρα. Διδάσκων: Παναγιώτης Ανδρέου
Διάλεξη 14: Δέντρα IV B Δένδρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: 2 3 Δένδρα, Εισαγωγή και άλλες πράξεις Άλλα Δέντρα: Β δένδρα, Β+ δέντρα, R δέντρα Διδάσκων: Παναγιώτης Ανδρέου ΕΠΛ231
Διαβάστε περισσότεραΔιάλεξη 18: Τεχνικές Κατακερματισμού I (Hashing)
ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 1 Διάλεξη 18: Τεχνικές Κατακερματισμού I (Hashing) Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Ανασκόπηση Προβλήματος και Προκαταρκτικών Λύσεων Bit-Διανύσματα
Διαβάστε περισσότεραΤα δεδομένα συνήθως αποθηκεύονται σε αρχεία στο δίσκο
Οργάνωση Αρχείων 1 Αρχεία Τα δεδομένα συνήθως αποθηκεύονται σε αρχεία στο δίσκο Η μεταφορά δεδομένων από το δίσκο στη μνήμη και από τη μνήμη στο δίσκο γίνεται σε μονάδες blocks Βασικός στόχος η ελαχιστοποίηση
Διαβάστε περισσότεραΔεντρικά Ευρετήρια. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1
Δεντρικά Ευρετήρια Ευαγγελία Πιτουρά 1 Δέντρα Αναζήτησης Ένα δέντρο αναζήτησης (search tree) τάξεως p είναι ένα δέντρο τέτοιο ώστε κάθε κόμβος του περιέχει το πολύ p - 1 τιμές αναζήτησης και ρ δείκτες
Διαβάστε περισσότεραΑνάκτηση Πληροφορίας
Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Ανάκτηση Πληροφορίας Διδάσκων: Φοίβος Μυλωνάς fmylonas@ionio.gr Διάλεξη #11 Suffix Arrays Φοίβος Μυλωνάς fmylonas@ionio.gr Ανάκτηση Πληροφορίας 1 Άδεια χρήσης Το παρόν
Διαβάστε περισσότερα