Πίνακες (Μια παλιά άσκηση) Πίνακες Κατακερματισμού (Hash Tables) Πίνακες (Μια παλιά άσκηση) Εισαγωγή. A n
|
|
- Μελέαγρος Μανωλάς
- 6 χρόνια πριν
- Προβολές:
Transcript
1 Πίνακες (Μια παλιά άσκηση) Πίνακες Κατακερματισμού (Hash Tables) Ορέστης Τελέλης Τμήμα Ψηφιακών Συστημάτων, Πανεπιστήμιο Πειραιώς A n O(1) (στην πρώτη ελέυθερη θέση στο τέλος του πίνακα). O(n) (διατρέχουμε τον πίνακα γραμμικά). O(n) (προϋποθέτει αναζήτηση + μετακίνηση στοιχείων). Μπορούμε καλύτερα αν θέλουμε να αποθηκεύσουμε υποσύνολο του {0, 1,..., n 1? Ο. Τελέλης - Πανεπιστήμιο Πειραιώς Δομές Δεδομένων - Κατακερματισμός 1 / 59 Ο. Τελέλης - Πανεπιστήμιο Πειραιώς Δομές Δεδομένων - Κατακερματισμός 2 / 59 Πίνακες (Μια παλιά άσκηση) Εισαγωγή Απάντηση: Ναι! Χρησιμοποιούμε έναν πίνακα n δυαδικών στοιχείων (με τιμές true/false) Εισαγωγή του a { 0, 1,..., n 1 : A[a] = true ( χρόνος O(1) ). Διαγραφή του a { 0, 1,..., n 1 : A[a] = false ( χρόνος O(1) ). Αναζήτηση του a { 0, 1,..., n 1 : return A[a]; ( χρόνος O(1) ). Μπορούμε να επιτύχουμε το ίδιο για οποιοδήποτε υποσύνολο οποιουδήποτε συνόλου δεδομένων n στοιχείων? Προσφέρει πολύ γρήγορη και., (μερικές φορές και η ) O(1) Πολύ πιο ταχύς από τα δέντρα (που αποδίδουν σε χρόνο O(log n)). Ο. Τελέλης - Πανεπιστήμιο Πειραιώς Δομές Δεδομένων - Κατακερματισμός 3 / 59 Ο. Τελέλης - Πανεπιστήμιο Πειραιώς Δομές Δεδομένων - Κατακερματισμός 4 / 59
2 Μειονεκτήματα Πίνακες/Συναρτήσεις Κατακερματισμού Βασίζονται σε πίνακες: δύσκολη η επέκταση μετά την δημιουργία τους. Η απόδοσή τους μειώνεται σημαντικά όταν ο πίνακας υπερκορεστεί. Δεν υπάρχει τρόπος επίσκεψης στοιχείων με συγκεκριμένη σειρά. Βασικό στοιχείο: ο μετασχηματισμός κλειδιών σε δείκτες πίνακα. Επιτυγχάνεται με μία Απλή περίπτωση, χωρίς χρήση συνάρτησης κατακερματισμού. Τιμές κλειδιών δείκτες πίνακα Ο. Τελέλης - Πανεπιστήμιο Πειραιώς Δομές Δεδομένων - Κατακερματισμός 5 / 59 Ο. Τελέλης - Πανεπιστήμιο Πειραιώς Δομές Δεδομένων - Κατακερματισμός 6 / 59 Τρόπος Λειτουργίας Παράδειγμα Τρόπου Λειτουργίας: Τηλεφωνικός Κατάλογος Ο. Τελέλης - Πανεπιστήμιο Πειραιώς Δομές Δεδομένων - Κατακερματισμός 7 / 59 Ο. Τελέλης - Πανεπιστήμιο Πειραιώς Δομές Δεδομένων - Κατακερματισμός 8 / 59
3 Παραδείγματα Χρήσης Παραδείγματα Χρήσης (Συνέχεια) ( ) Πρόσβαση σε εγγραφές υπαλλήλων. Αριθμοί υπαλλήλων Οι αριθμοί υπαλλήλων κλειδιά στην προσπέλαση εγγραφών. Τί είδους δομή πρέπει να χρησιμοποιηθεί σ αυτή την περίπτωση? _1 _2 _72 Προσπέλαση στοιχείου πίνακα: emprecord rec = databasearray[72]; emprecord rec = databasearray[72]; databasearray[totalemployees++] = newrecord; Προσθήκη στοιχείου: _ databasearray[totalemployees++] = newrecord;, 3 8 Ο. Τελέλης - Πανεπιστήμιο Πειραιώς Δομές Δεδομένων - Κατακερματισμός 9 / 59 Ο. Τελέλης - Πανεπιστήμιο Πειραιώς Δομές Δεδομένων - Κατακερματισμός 10 / 59 Παραδείγματα Χρήσης (Συνέχεια) Εφαρμογές Πινάκων Κατακερματισμού Πίνακας: απλή & αποδοτική δομή για προσπέλαση στοιχείων. Περιορισμοί: Καλά τακτοποιημένα κλειδιά. Περιορισμένος αριθμός διαγραφών οδηγούν σε κενά στην μνήμη. Στοιχεία μπορούν να προστίθενται μόνο στο τέλος του πίνακα. Μέγεθος πίνακα σταθερό. Αν τα κλειδιά δεν πληρούν τους περιορισμούς του πίνακα? Ο πίνακας κατακερματισμού είναι μία κατάλληλη δομή δεδομένων. Μεταγλωττιστές γλωσσών προγραμματισμού. Διατήρηση πίνακα συμβόλων σε πίνακα κατακερματισμού: ονόματα μεταβλητών, ονόματα συναρτήσεων, διευθύνσεις στη μνήμη. Λεξικό όρων: Κάθε λέξη καταλαμβάνει ένα κελί σε έναν πίνακα. Προσπέλαση της λέξης χρησιμοποιώντας έναν αριθμό δείκτη. Ο. Τελέλης - Πανεπιστήμιο Πειραιώς Δομές Δεδομένων - Κατακερματισμός 11 / 59 Ο. Τελέλης - Πανεπιστήμιο Πειραιώς Δομές Δεδομένων - Κατακερματισμός 12 / 59
4 Συνάρτηση Κατακερματισμού Ιδιότητες Συνάρτησης Κατακερματισμού Κατανομή κλειδιών ομοιόμορφα στο χώρο δεικτών του πίνακα. Μετατρέπει το αντικείμενο σε ακέραιο για δεικτοδότηση θέσης πίνακα: h : O {0, 1,..., M 1 όπου είναι αποθηκευμένο (ή θα αποθηκευθεί) το αντικείμενο. Αν h 1-1, προσπέλαση αντικειμένου με το δείκτη του στον πίνακα., = ( ) ( ) = ( ) ( ). Δύσκολο να βρεθεί μία τέτοια συνάρτηση κατακερματισμού. Δύο ή περισσότερα διαφορετικά αντικείμενα/κλειδιά αντιστοιχίζονται μέσω της συνάρτησης στην ίδια θέση: = ( ) = ( ) Ο. Τελέλης - Πανεπιστήμιο Πειραιώς Δομές Δεδομένων - Κατακερματισμός 13 / 59 Ο. Τελέλης - Πανεπιστήμιο Πειραιώς Δομές Δεδομένων - Κατακερματισμός 14 / 59 Πρωτογενείς Τύποι Δεδομένων Συνάρτηση Κατακερματισμού Εστω ο αριθμός 1234: είναι μία συλλογή από ψηφία 1, 2, 3 και 4, όπου: Μπορούμε να αντιστοιχίσουμε κάθε τιμή βασικού τύπου σε τιμή. Τιμή τύπου : κατακερματίζεται σε μοναδικό θετικό ακέραιο (όπως ορίζεται στο U ). Αφηρημένοι τύποι δεδομένων δεν έχουν προκαθορισμένες τιμές. Υπολογισμός τιμής κατακερματισμού για κάθε αντικείμενο με πολυωνυμική συνάρτηση Εστω το string «junk» συλλογή από χαρακτήρες j, u, n, k. ASCII αναπαράσταση με 7 bits σαν ένας αριθμός μεταξύ 0 και 127: j u n k Για αντιστοίχιση μεγάλων αριθμών (όπως προκύπτουν από μετατροπή strings σε αριθμούς) χρειαζόμαστε συνάρτηση κατακερματισμού. Αν το μέγεθος του πίνακα και x ακέραιος: x mod παράγει αριθμό στο διάστημα {0, 1,..., 1. Ο. Τελέλης - Πανεπιστήμιο Πειραιώς Δομές Δεδομένων - Κατακερματισμός 15 / 59 Ο. Τελέλης - Πανεπιστήμιο Πειραιώς Δομές Δεδομένων - Κατακερματισμός 16 / 59
5 Κατακερματισμός Αντικειμένων Διαχείριση Συγκρούσεων Εστω αντικείμενα της κλάσης που έχουν k πεδία τύπου : O = ( x 0,..., x k 1 ) Η τιμή κατακερματισμού για κάθε αντικείμενο O επιλέγοντας μία θετική σταθερά α, υπολογίζεται ως: h(x 0 )α k 1 + h(x 1 )α k h(x k 2 )α + h(x k 1 ) ή: h(x k 1 ) + α(h(x k 2 ) + α(h(x k 2 ) + + α(h(x 1 ) + αh(x 0 ))... )) Εχοντας μία συνάρτηση κατακερματισμού, τι θα κάνουμε σε περίπτωση σύγκρουσης (collision)? Εάν το στοιχείο X κατακερματιστεί σε θέση που είναι ήδη κατειλημμένη, πού θα το τοποθετήσουμε? Ο. Τελέλης - Πανεπιστήμιο Πειραιώς Δομές Δεδομένων - Κατακερματισμός 17 / 59 Ο. Τελέλης - Πανεπιστήμιο Πειραιώς Δομές Δεδομένων - Κατακερματισμός 18 / 59 Ανοιχτή Διευθυνσιοδότηση Γενική Μορφή Ανοιχτής Διευθυνσιοδότησης Οταν ένα στοιχείο δεν μπορεί να τοποθετηθεί στο δείκτη που υπολογίστηκε από τη συνάρτηση κατακερματισμού, το πρόγραμμα ψάχνει για άλλη θέση στον πίνακα. : ( ). ( ). ( ) k k με h(k) = h(k ) και η θέση h(k) έχει δοθεί στο k. Δεδομένης F : {0,..., tablesize 1 N, αναζητείται διαθέσιμη θέση: ( h(k ) + F (i) ) mod tablesize, για i = 1, 2, 3,... ( h(k ) + F (i) ) mod tablesize, i = 0, 1, 2,..., όπου F (0) = 0 ( ). Ο. Τελέλης - Πανεπιστήμιο Πειραιώς Δομές Δεδομένων - Κατακερματισμός 19 / 59 Ο. Τελέλης - Πανεπιστήμιο Πειραιώς Δομές Δεδομένων - Κατακερματισμός 20 / 59
6 Ανοιχτή Διεύθυνση: Γραμμική Διερεύνηση Παράδειγμα Γραμμικής Διερεύνησης Τυπικά: ( ) = Τότε, αναζητείται σειριακά ελεύθερη θέση στον πίνακα, μεταξύ των: ( ( ) + ) mod tablesize, i = 0, 1, 2,... h(89) = 89 mod 10 = 9 h(18) = 18 mod 10 = 8 h(49) = 49 mod 10 = 9 h(58) = 58 mod 10 = 8 h(9) = 9 mod 10 = 9 Θέση Μετά το 89 Μετά το 18 Μετά το 49 Μετά το 58 Μετά το Ο. Τελέλης - Πανεπιστήμιο Πειραιώς Δομές Δεδομένων - Κατακερματισμός 21 / 59 Ο. Τελέλης - Πανεπιστήμιο Πειραιώς Δομές Δεδομένων - Κατακερματισμός 22 / 59 Ανοιχτή Διεύθυνση: Γραμμική Διερεύνησης Κλάση DataItem (μέσω της Γραμμικής Διερεύνησης). ανάλογος του μέγιστου «μήκους» γραμμικής διερεύνησης. ανάλογος του μέγιστου «μήκους» γραμμικής διερεύνησης. O(1), (δεν ελευθερώνεται θέση): αν ελευθερωθεί θέση, η αναζήτηση στον πίνακα μπορεί να αποτύχει. j a v a. i o. * ; DataItem { i D a t a ; DataItem ( i i ) { i D a t a = i i ; getkey ( ) { i D a t a ; Ο. Τελέλης - Πανεπιστήμιο Πειραιώς Δομές Δεδομένων - Κατακερματισμός 23 / 59 Ο. Τελέλης - Πανεπιστήμιο Πειραιώς Δομές Δεδομένων - Κατακερματισμός 24 / 59
7 Υλοποίηση Πίνακα Κατακερματισμού (1/4) HashTable { DataItem [ ] h a s h A r r a y ; a r r a y S i z e ; DataItem nonitem ; HashTable ( s i z e ) { a r r a y S i z e = s i z e ; h a s h A r r a y = DataItem [ a r r a y S i z e ] ; nonitem = DataItem ( 1) ; d i s p l a y T a b l e ( ) { System. out. p r i n t ( T a b l e : ) ; ( j = 0 ; j < a r r a y S i z e ; j ++) { ( h a s h A r r a y [ j ]! = ) System. out. p r i n t ( h a s h A r r a y [ j ]. getkey ( ) + ) ; System. out. p r i n t ( ** ) ; System. out. p r i n t l n ( ) ; Ο. Τελέλης - Πανεπιστήμιο Πειραιώς Δομές Δεδομένων - Κατακερματισμός 25 / 59 Υλοποίηση Πίνακα Κατακερματισμού (2/4) hashfunc ( key ) { key % a r r a y S i z e ; i n s e r t ( DataItem item ) { key = item. getkey ( ) ; hashval = hashfunc ( key ) ; ( h a s h A r r a y [ h ashval ]!= && h a s h A r r a y [ hashval ]. getkey ( )!= 1) { ++ hashval ; hashval %= a r r a y S i z e ; h a s h A r r a y [ hashval ] = item ; Ο. Τελέλης - Πανεπιστήμιο Πειραιώς Δομές Δεδομένων - Κατακερματισμός 26 / 59 Υλοποίηση Πίνακα Κατακερματισμού (3/4) Υλοποίηση Πίνακα Κατακερματισμού (4/4) DataItem d e l e t e ( key ) { h a s h V a l = hashfunc ( key ) ; ( h a s h A r r a y [ h ashval ]!= ) { ( h a s h A r r a y [ h ashval ]. getkey ( ) == key ) { DataItem temp = h a s h A r r a y [ hashval ] ; h a s h A r r a y [ hashval ] = nonitem ; temp ; ++ h a s h Val ; h a s h V a l %= a r r a y S i z e ; ; DataItem f i n d ( key ) { hashval = hashfunc ( key ) ; ( h a s h A r r a y [ h ashval ]!= ) { ( h a s h A r r a y [ h ashval ]. getkey ( ) == key ) h a s h A r r a y [ hashval ] ; ++ hashval ; hashval %= a r r a y S i z e ; ; Ο. Τελέλης - Πανεπιστήμιο Πειραιώς Δομές Δεδομένων - Κατακερματισμός 27 / 59 Ο. Τελέλης - Πανεπιστήμιο Πειραιώς Δομές Δεδομένων - Κατακερματισμός 28 / 59
8 Γραμμική Διερεύνηση: Δημιουργία Δεσμών Οι δεσμοί δημιουργούν μεγάλες ακολουθίες διερεύνησης. Αργή προσπέλαση κελιών στο τέλος της ακολουθίας. Το πρόβλημα δεσμών μεγαλώνει καθώς γεμίζει ο πίνακας. (primary clustering) Οχι σημαντικό όσο ο πίνακας είναι το πολύ κατά το ήμισυ γεμάτος. = / Επέκταση Πίνακα Ανακατακερματισμός insert. (όχι ακριβώς ) i s P r i m e ( n ) { ( j = 2 ; ( j * j <= n ) ; j ++) ( n % j == 0 ) ( ) ; ( ) ; Ο. Τελέλης - Πανεπιστήμιο Πειραιώς Δομές Δεδομένων - Κατακερματισμός 29 / 59 Ο. Τελέλης - Πανεπιστήμιο Πειραιώς Δομές Δεδομένων - Κατακερματισμός 30 / 59 Ανοιχτή Διεύθυνση: Δευτεροβάθμια Διερεύνηση Παράδειγμα Δευτεροβάθμιας Διερεύνησης ( ) Εξετάζει συγκεκριμένα κελιά μακριά από το αρχικό σημείο σύγκρουσης., τυπικά: ( ) = Για κάθε εισαγωγή κλειδιού, k, αναζητά ελεύθερη θέση στον πίνακα, εξετάζοντας σειριακά τις ακόλουθες θέσεις: ( ( ) + ) mod tablesize, =,,,... h(89) = 89 mod 10 = 9 h(18) = 18 mod 10 = 8 h(49) = 49 mod 10 = 9 h(58) = 58 mod 10 = 8 h(9) = 9 mod 10 = 9 Θέση Μετά το 89 Μετά το 18 Μετά το 49 Μετά το 58 Μετά το Ο. Τελέλης - Πανεπιστήμιο Πειραιώς Δομές Δεδομένων - Κατακερματισμός 31 / 59 Ο. Τελέλης - Πανεπιστήμιο Πειραιώς Δομές Δεδομένων - Κατακερματισμός 32 / 59
9 Απόδοση Δευτεροβάθμιας Διερεύνησης Απόδειξη (1/2) Εστω M το μέγεθος του πίνακα:, M > 3. Οταν χρησιμοποιείται δευτεροβάθμια διερεύνηση και το μέγεθος του πίνακα είναι πρώτος αριθμός, πάντα μπορεί να εισαχθεί ένα νέο κλειδί, αν ο πίνακας είναι το πολύ κατά το ήμισυ γεμάτος (δηλαδή αν. ). ΘΔΟ οι πρώτες M/2 θέσεις είναι διαφορετικές. Για κάποια i, j με 0 < i, j M/2, δύο τέτοιες θέσεις είναι οι: h(k) + i 2 mod M h(k) + j 2 mod M Θα θεωρήσουμε (με στόχο την απαγωγή σε άτοπο), ότι i j, αλλά: h(k) + i 2 mod M = h(k) + j 2 mod M Ο. Τελέλης - Πανεπιστήμιο Πειραιώς Δομές Δεδομένων - Κατακερματισμός 33 / 59 Ο. Τελέλης - Πανεπιστήμιο Πειραιώς Δομές Δεδομένων - Κατακερματισμός 34 / 59 Απόδειξη (2/2) Πρόβλημα με Δευτεροβάθμια Διερεύνηση Τότε: [ (h(k) + i 2 ) (h(k) + j 2 ) ] mod M = 0 (i j)(i + j) mod M = 0 Ομως, ο M δε μπορεί να διαιρεί τον i + j, διότι 0 < i + j < M 1. Επειδή 0 < i j M/2 (άρα, αν π.χ. j = M/2, πρέπει i j 1). Επίσης, ο M δε διαιρεί τον i j (εκτός κι αν i = j): Διότι i j < M/2. Και, επίσης, i j, από υπόθεση. Τέλος, o M δε διαιρεί το γινόμενο, γιατί είναι πρώτος: θα έπρεπε να διαιρεί κάποιον από τους i + j, i j. οι πρώτες M/2 εναλλακτικές θέσεις του πίνακα είναι διαφορετικές. Οδηγεί σε ( ) Ο αλγόριθμος που παράγει την ακολουθία βημάτων στη δευτεροβάθμια διερεύνηση παράγει πάντα τα ίδια βήματα: 1, 4, 9, 16 Π.χ. 184, 302, 420, 544 μετασχηματίζονται στο 7 και εισάγονται στον πίνακα με αυτήν τη σειρά 302 διερεύνηση ενός βήματος. 420 διερεύνηση 4 βημάτων. 544 διερευνηση 9 βημάτων. Κάθε επιπλέον στοιχείο με κλειδί που μετασχηματίζεται σε 7 θα χρειάζεται μία ακόμα μακρύτερη διερεύνηση. Μαζί με την πρώτη θέση κατακερματισμού του κλειδιού: M/2. Ο. Τελέλης - Πανεπιστήμιο Πειραιώς Δομές Δεδομένων - Κατακερματισμός 35 / 59 Ο. Τελέλης - Πανεπιστήμιο Πειραιώς Δομές Δεδομένων - Κατακερματισμός 36 / 59
10 Ανοιχτή Διεύθυνση: Διπλός Κατακερματισμός (1) Παραγωγή σειράς «διερευνήσεων» που εξαρτώνται από το κλειδί: αντί η ίδια σειρά για κάθε κλειδί. (, ) = ( ) Αναζητείται σειριακά η επόμενη ελεύθερη θέση, μεταξύ των: Ανοιχτή Διεύθυνση: Διπλός Κατακερματισμός (2) 0 (αλλιώς, ατέρμονος βρόχος από διερευνήσεις ίδιου κελιού). Εχει δειχθεί ότι συναρτήσεις της παρακάτω μορφής αποδίδουν καλά: ( ) = ( mod ) όπου πρώτος αριθμός και μικρότερος από το μέγεθος πίνακα. ( ( ) + (, ) ) mod tablesize, =,,,... Ο. Τελέλης - Πανεπιστήμιο Πειραιώς Δομές Δεδομένων - Κατακερματισμός 37 / 59 Ο. Τελέλης - Πανεπιστήμιο Πειραιώς Δομές Δεδομένων - Κατακερματισμός 38 / 59 Παράδειγμα Διπλού Κατακερματισμού Υλοποίηση Διπλού Κατακερματισμού ( ) = mod. ( ) = ( mod ). Θέση Μετά το 89 Μετά το 18 Μετά το 49 Μετά το 58 Μετά το hashfunc1 ( key ) { key % a r r a y S i z e ; hashfunc2 ( key ) { 5 key % 5 ; i n s e r t ( key, DataItem item ) { hashval = hashfunc1 ( key ) ; s t e p S i z e = hashfunc2 ( key ) ; ( h a s h A r r a y [ h ashval ]!= && h a s h A r r a y [ hashval ]. getkey ( )!= 1) { hashval += s t e p S i z e ; hashval %= a r r a y S i z e ; h a s h A r r a y [ hashval ] = item ; Ο. Τελέλης - Πανεπιστήμιο Πειραιώς Δομές Δεδομένων - Κατακερματισμός 39 / 59 Ο. Τελέλης - Πανεπιστήμιο Πειραιώς Δομές Δεδομένων - Κατακερματισμός 40 / 59
11 Το Μέγεθος Πίνακα να είναι Πρώτος Αριθμός Χωριστή Αλυσίδωση (1) Εστω πίνακας 15 θέσεων (δείκτες 0 ως 14). Εστω κλειδί που κατακερματίζεται στη θέση 0 με βήμα 5. Τότε η ακολουθία διερευνήσεων θα είναι: 0, 5, 10, 0, 5, 10,... Εάν το μέγεθος πίνακα ήταν 13 (πρώτος): 0, 5, 10, 2, 7, 12, 4, 9, 1, 6, 11, 3,.... Το κλειδί ενός στοιχείου μετασχηματίζεται στο δείκτη με βάση τη συνάρτηση κατακερματισμού και το στοιχείο εισάγεται στη συνδεδεμένη λίστα. Στοιχεία που κατακερματίζονται στον ίδιο δείκτη εισάγονται στη λίστα. Ο. Τελέλης - Πανεπιστήμιο Πειραιώς Δομές Δεδομένων - Κατακερματισμός 41 / 59 Ο. Τελέλης - Πανεπιστήμιο Πειραιώς Δομές Δεδομένων - Κατακερματισμός 42 / 59 Χωριστή Αλυσίδωση (2) Παράδειγμα Χωριστής Αλυσίδωσης Αποθηκεύονται οσαδήποτε στοιχεία σε πίνακα n κελιών Ο χρόνος προσπέλασης στοιχείων αυξάνει με το μήκος των λιστών , 3 35 Ο. Τελέλης - Πανεπιστήμιο Πειραιώς Δομές Δεδομένων - Κατακερματισμός 43 / 59 Ο. Τελέλης - Πανεπιστήμιο Πειραιώς Δομές Δεδομένων - Κατακερματισμός 44 / 59
12 Υλοποίηση με Χωριστή Αλυσίδωση (1/2) HashTable { S o r t e d L i s t [ ] h a s h A r r a y ; a r r a y S i z e ; HashTable ( s i z e ) { a r r a y S i z e = s i z e ; h a s h A r r a y = S o r t e d L i s t [ a r r a y S i z e ] ; ( j = 0 ; j < a r r a y S i z e ; j ++) h a s h A r r a y [ j ] = S o r t e d L i s t ( ) ; d i s p l a y T a b l e ( ) { ( j = 0 ; j < a r r a y S i z e ; j ++) { System. out. p r i n t ( j +. ) ; h a s h A r r a y [ j ]. d i s p l a y L i s t ( ) ; Ο. Τελέλης - Πανεπιστήμιο Πειραιώς Δομές Δεδομένων - Κατακερματισμός 45 / 59 Υλοποίηση με Χωριστή Αλυσίδωση (2/2) hashfunc ( key ) { key % a r r a y S i z e ; i n s e r t ( L i n k t h e L i n k ) { key = t h e L i n k. getkey ( ) ; hashval = hashfunc ( key ) ; h a s h A r r a y [ hashval ]. i n s e r t ( t h e L i n k ) ; d e l e t e ( key ) { hashval = hashfunc ( key ) ; h a s h A r r a y [ hashval ]. d e l e t e ( key ) ; L i n k f i n d ( key ) { hashval = hashfunc ( key ) ; L i n k t h e L i n k = h a s h A r r a y [ h ashval ]. f i n d ( key ) ; t h e L i n k ; Ο. Τελέλης - Πανεπιστήμιο Πειραιώς Δομές Δεδομένων - Κατακερματισμός 46 / 59 Καλές Επιλογές για Συναρτήσεις Κατακερματισμού Απόδοση Κατακερματισμού Η συνάρτηση κατακερματισμού πρέπει να: Υπολογίζεται γρήγορα. Κατανέμει με τυχαία & ομοιόμορφα τα κλειδιά στις θέσεις του πίνακα. Μη χρησιμοποιεί άχρηστη πληροφορία. Π.χ. Κωδικοί της μορφής Χρησιμοποιεί όλα τα δεδομένα. Αν είναι η mod (%), πρώτο αριθμό για το διαιρέτη. Η και η προσεγγίζουν χρόνο O(1) (αν δε συμβεί καμία σύγκρουση). Αν συμβούν συγκρούσεις, ο χρόνος εξαρτάται από το μήκος της ακολουθίας διερευνήσεων. Το μέσο μήκος διερεύνησης εξαρτάται από το συντελεστή φόρτου. Εστω P το μήκος διερεύνησης (probes) και L ο συντελεστής φόρτου. Ο. Τελέλης - Πανεπιστήμιο Πειραιώς Δομές Δεδομένων - Κατακερματισμός 47 / 59 Ο. Τελέλης - Πανεπιστήμιο Πειραιώς Δομές Δεδομένων - Κατακερματισμός 48 / 59
13 Απόδοση Γραμμικής Διερεύνησης Απόδοση Δευτεροβάθμιας Διερεύνησης και Διπλού Κατακερματισμού : P = ( / (1 L) 2 ) / 2 P = ( / (1 L) 2 ) / 2 : P = ( / (1 L) ) / 2 P = ( / (1 L) ) / 2 2/3 1/2 Ο συντελεστής φόρτου πρέπει να διατηρείται κάτω από το 2/3 και, ιδανικά, κάτω από το 1/ Donald E. Knuth: «The Art of Computer Programming», Τόμος 3, Sor ng and Searching : P = - log ( 1 L ) / L : P = 1 / ( P 1 = L) log(1 L) / L P = 1 / (1 L) Με συντελεστή φόρτου 0.5 επιτυχείς και ανεπιτυχείς αναζητήσεις απαιτούν κατά μέσο όρο 2 διερευνήσεις Donald E.Knuth: The Art of Computer Programming 3: Sorting and Searching Ο. Τελέλης - Πανεπιστήμιο Πειραιώς Δομές, Δεδομένων 3 - Κατακερματισμός / 59 Απόδοση Χωριστής Αλυσίδωσης, 3 41 Ο. Τελέλης - Πανεπιστήμιο Πειραιώς Δομές Δεδομένων - Κατακερματισμός 50 / 59 Συμπερασματικά arraysize n = AverageListLength AVGListLength = N = / n/ arraysize tablesize L = N / arraysize L = n/ tablesize : 1 + L / 2 : 1 + L1 + L/ L. : (1) : 1 + L / 2 Μη ταξινομημένες λίστες: O(1) 1.0 Διπλός Κατακερματισμός καλύτερος τύπος ανοιχτής διεύθυνσης. Με μικρή υπεροχή ως προς τη δευτεροβάθμια διερεύνηση. Αν υπάρχει άφθονη μνήμη, πιο απλή η Γραμμική Διερεύνηση (μικρή επιβάρυνση για συντελεστή φόρτου μικρότερο από 0.5). Για άγνωστο πλήθος στοιχείων: προτιμότερη η Χωριστή Αλυσίδωση. Η απόδοσή της μειώνεται γραμμικά με την αύξηση συντελεστή φόρτου Προτιμάται για δεδομένα αβέβαιου πλήθους και ποιότητας (εύρους κλειδιών). Ταξινομημένες λίστες: 1 + L/2., 3 42 Ο. Τελέλης - Πανεπιστήμιο Πειραιώς Δομές Δεδομένων - Κατακερματισμός 51 / 59 Ο. Τελέλης - Πανεπιστήμιο Πειραιώς Δομές Δεδομένων - Κατακερματισμός 52 / 59
14 Εξωτερικός Κατακερματισμός: (External Hashing) Πίνακες Κατακερματισμού στη Java Απαιτείται: java. u l.hashmap; Constructor HashMap() HashMap( size ) HashMap( size, lf ) HashMap(HashMap m) Αδειο πίνακα 16 θέσεων με μέγιστο συντελεστή φόρτου Αδειο πίνακα size θέσεων με μέγιστο συντελεστή φόρτου Αδειο πίνακα size θέσεων με μέγιστο συντελεστή φόρτου lf. Πίνακα με χαρακτηριστικά και τα στοιχεία του m. Ο. Τελέλης - Πανεπιστήμιο Πειραιώς Δομές Δεδομένων - Κατακερματισμός 53 / 59 Ο. Τελέλης - Πανεπιστήμιο Πειραιώς Δομές Δεδομένων - Κατακερματισμός 54 / 59 Δημιουργία Πίνακα Κατακερματισμού στη Java Παραδείγματα Στη δήλωση αναφοράς σε αντικείμενο τύπου HashMap δηλώνουμε: Τον τύπο των κλειδιών, (αυτά κατακερματίζονται) Τον τύπο των δεδομένων (τιμών), Με δήλωση του είδους: HashMap<K,V> hmap; Πίνακας για κλειδιά τύπου Integer, τιμές τύπου String : HashMap<Integer,String> hm = HashMap<Integer,String>(); Πίνακας για κλειδιά τύπου String, τιμές τύπου MyClass: HashMap<String,MyClass> hm = HashMap<String,MyClass>(20); Υποκαθιστούνται από σύνθετους τύπους Integer, Float, Double (με κεφαλαίο το πρώτο γράμμα) Ο. Τελέλης - Πανεπιστήμιο Πειραιώς Δομές Δεδομένων - Κατακερματισμός 55 / 59 Ο. Τελέλης - Πανεπιστήμιο Πειραιώς Δομές Δεδομένων - Κατακερματισμός 56 / 59
15 Μέθοδοι Πινάκων Κατακερματισμού στη Java Παράδειγμα Μέθοδος V put(k key, V value) V remove(object key) V get(object key) isempty() containskey(object key) Εισάγει το ζεύγος key, value Διαγράφει την εγγραφή για κλειδί key Επιστρέφει την τιμή για κλειδί key Επιστρέφει αν ο πίνακας είναι άδειος Επιστρέφει αν ο πίνακας περιέχει ζεύγος για το κλειδί key j a v a. u t i l. HashMap ; HashMapDemo { main ( S t r i n g a r g s [ ] ) { HashMap< S t r i n g, I n t e g e r > hm = HashMap< S t r i n g, I n t e g e r > ( ) ; hm. put ( O r e s t i s, I n t e g e r ( 3 7 ) ) ; containsvalue (Object value) size () Επιστρέφει αν ο πίνακας περιέχει ζεύγος με την τιμή value Επιστρέφει πλήθος ζευγών System. out. p r i n t l n (hm. get ( O r e s t i s ) ) ; Ο. Τελέλης - Πανεπιστήμιο Πειραιώς Δομές Δεδομένων - Κατακερματισμός 57 / 59 Ο. Τελέλης - Πανεπιστήμιο Πειραιώς Δομές Δεδομένων - Κατακερματισμός 58 / 59 Ασκηση Δεδομένης εισόδου { 4371, 1323, 6173, 4199, 4344, 9679, 1989 και: Συνάρτηση Κατακερματισμού: h(k) = k mod 10 να βρεθούν οι πίνακες κατακερματισμού: με ξεχωριστή αλυσίδα. με ανοιχτή διευθυνσιοδότηση γραμμικής διερεύνησης. με ανοιχτή διευθυνσιοδότητη δευτεροβάθμιας διερεύνησης. με ανοιχτή διευθυνσιοδότηση δευτερεύουσας συνάρτησης κατακερματισμού: h 1 (k) = 7 (k mod 7) Ο. Τελέλης - Πανεπιστήμιο Πειραιώς Δομές Δεδομένων - Κατακερματισμός 59 / 59
10. Πίνακες Κατακερματισμού
Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 10. Πίνακες Κατακερματισμού 2 ομές εδομένων 4 5 Χρήστος ουλκερίδης Τμήμα Ψηφιακών Συστημάτων 16/12/2016 Πίνακες
Διαβάστε περισσότεραΔομές Δεδομένων και Αλγόριθμοι
Δομές Δεδομένων και Αλγόριθμοι Χρήστος Γκόγκος ΤΕΙ Ηπείρου Χειμερινό Εξάμηνο 2014-2015 Παρουσίαση 19 Hashing - Κατακερματισμός 1 / 23 Πίνακες απευθείας πρόσβασης (Direct Access Tables) Οι πίνακες απευθείας
Διαβάστε περισσότεραΣύνοψη Προηγούμενου. Πίνακες (Arrays) Πίνακες (Arrays): Βασικές Λειτουργίες. Πίνακες (Arrays) Ορέστης Τελέλης
Σύνοψη Προηγούμενου Πίνακες (Arrays Ορέστης Τελέλης telelis@unipi.gr Τμήμα Ψηφιακών Συστημάτων, Πανεπιστήμιο Πειραιώς Διαδικαστικά θέματα. Aντικείμενο Μαθήματος. Aντικείμενα, Κλάσεις, Μέθοδοι, Μεταβλητές.
Διαβάστε περισσότεραΔομές Δεδομένων. Δημήτρης Μιχαήλ. Κατακερματισμός. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο
Δομές Δεδομένων Κατακερματισμός Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Λεξικό Dictionary Ένα λεξικό (dictionary) είναι ένας αφηρημένος τύπος δεδομένων (ΑΤΔ) που διατηρεί
Διαβάστε περισσότεραΔιάλεξη 23: Τεχνικές Κατακερματισμού II (Hashing)
ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 1 Διάλεξη 23: Τεχνικές Κατακερματισμού II (Hashing) Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Διαχείριση Συγκρούσεων με Ανοικτή Διεύθυνση a) Linear
Διαβάστε περισσότεραΔιάλεξη 22: Τεχνικές Κατακερματισμού I (Hashing)
Διάλεξη 22: Τεχνικές Κατακερματισμού I (Hashing) Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Ανασκόπηση Προβλήματος και Προκαταρκτικών Λύσεων Bit Διανύσματα Τεχνικές Κατακερματισμού & Συναρτήσεις
Διαβάστε περισσότεραΔομές Δεδομένων. Κατακερματισμός. Δομές Δεδομένων & Αλγόριθμοι. Εργαστήριο Γνώσης και Ευφυούς Πληροφορικής 1
Δομές Δεδομένων Κατακερματισμός Πληροφορικής 1 Πρόβλημα Insert, Search και DELETE εγγραφής Σε σταθερό χρόνο Σε πίνακα εγγραφών όπου το πεδίο τιμών στα κλειδιά >> Μέγεθος Πίνακα (M) το πλήθος των εγγραφών
Διαβάστε περισσότεραΚατακερματισμός. 4/3/2009 Μ.Χατζόπουλος 1
Κατακερματισμός 4/3/2009 Μ.Χατζόπουλος 1 H ιδέα που βρίσκεται πίσω από την τεχνική του κατακερματισμού είναι να δίνεται μια συνάρτησης h, που λέγεται συνάρτηση κατακερματισμού ή παραγωγής τυχαίων τιμών
Διαβάστε περισσότεραΟργάνωση αρχείων: πως είναι τοποθετηµένες οι εγγραφές ενός αρχείου όταν αποθηκεύονται στο δίσκο
Κατακερµατισµός 1 Οργάνωση Αρχείων (σύνοψη) Οργάνωση αρχείων: πως είναι τοποθετηµένες οι εγγραφές ενός αρχείου όταν αποθηκεύονται στο δίσκο 1. Αρχεία Σωρού 2. Ταξινοµηµένα Αρχεία Φυσική διάταξη των εγγραφών
Διαβάστε περισσότεραΔομές Αναζήτησης. εισαγωγή αναζήτηση επιλογή. εισαγωγή. αναζήτηση
Δομές Αναζήτησης χειρότερη περίπτωση μέση περίπτωση εισαγωγή αναζήτηση επιλογή εισαγωγή αναζήτηση διατεταγμένος πίνακας διατεταγμένη λίστα μη διατεταγμένος πίνακας μη διατεταγμένη λίστα δένδρο αναζήτησης
Διαβάστε περισσότεραΕνότητα 6: Κατακερματισμός Ασκήσεις και Λύσεις
ΗΥ2, Ενότητα : Ασκήσεις και Λύσεις Ενότητα : Κατακερματισμός Ασκήσεις και Λύσεις Άσκηση 1 Χρησιμοποιήστε τη συνάρτηση κατακερματισμού της διαίρεσης ως πρωτεύουσα συνάρτηση κατακερματισμού και τη συνάρτηση
Διαβάστε περισσότεραΤα δεδομένα (περιεχόμενο) μιας βάσης δεδομένων αποθηκεύεται στο δίσκο
Κατακερματισμός 1 Αποθήκευση εδομένων (σύνοψη) Τα δεδομένα (περιεχόμενο) μιας βάσης δεδομένων αποθηκεύεται στο δίσκο Παραδοσιακά, μία σχέση (πίνακας/στιγμιότυπο) αποθηκεύεται σε ένα αρχείο Αρχείο δεδομένων
Διαβάστε περισσότεραΤαξινόμηση: Εισαγωγικά. Ταξινόμηση (Sor ng) Αλγόριθμοι Απλής Ταξινόμησης. Βασικά Βήματα των Αλγορίθμων
Ταξινόμηση: Εισαγωγικά Ταξινόμηση (Sor ng) Ορέστης Τελέλης Βασικό πρόβλημα για την Επιστήμη των Υπολογιστών. π.χ. αλφαβητική σειρά, πωλήσεις ανά τιμή, πόλεις με βάση πληθυσμό, Μπορεί να είναι ένα πρώτο
Διαβάστε περισσότεραΟ ΑΤΔ Λεξικό. Σύνολο στοιχείων με βασικές πράξεις: Δημιουργία Εισαγωγή Διαγραφή Μέλος. Υλοποιήσεις
Ο ΑΤΔ Λεξικό Σύνολο στοιχείων με βασικές πράξεις: Δημιουργία Εισαγωγή Διαγραφή Μέλος Υλοποιήσεις Πίνακας με στοιχεία bit (0 ή 1) (bit vector) Λίστα ακολουθιακή (πίνακας) ή συνδεδεμένη Είναι γνωστό το μέγιστο
Διαβάστε περισσότεραΔιδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ
Διάλεξη 25: Τεχνικές Κατακερματισμού II Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Διαχείριση Συγκρούσεων με Ανοικτή Διεύθυνση a) Linear Probing, b) Quadratic Probing c) Double Hashing Διατεταγμένος
Διαβάστε περισσότεραΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δομές Δεδομένων. Ιωάννης Γ. Τόλλης Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Δομές Δεδομένων Ιωάννης Γ. Τόλλης Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού
Διαβάστε περισσότεραΚατακερματισμός (Hashing)
Κατακερματισμός (Hashing) O κατακερματισμός είναι μια τεχνική οργάνωσης ενός αρχείου. Είναι αρκετά δημοφιλής μέθοδος για την οργάνωση αρχείων Βάσεων Δεδομένων, καθώς βοηθάει σημαντικά στην γρήγορη αναζήτηση
Διαβάστε περισσότεραΔιάλεξη 23: Τεχνικές Κατακερματισμού II (Hashing)
Διάλεξη 23: Τεχνικές Κατακερματισμού II (Hashing) Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Διαχείριση Συγκρούσεων με Ανοικτή Διεύθυνση a) Linear Probing, b) Quadratic Probing c) Double
Διαβάστε περισσότεραΣυναρτήσεις Κατακερματισμού και Πίνακες Κατακερματισμού
Μια συνάρτηση κατακερματισμού (hash function) h απεικονίζει κλειδιά ενός δοσμένου τύπου σεακεραίουςενόςσταθερούδιαστήματος [0,N 1]όπουΝτομέγεθοςτουπίνακα. Πχ: Συναρτήσεις Κατακερματισμού και Πίνακες Κατακερματισμού
Διαβάστε περισσότεραΔυναμικά Σύνολα. Δυναμικό σύνολο. Tα στοιχεία του μεταβάλλονται μέσω εντολών εισαγωγής και διαγραφής. διαγραφή. εισαγωγή
Δυναμικά Σύνολα Δυναμικό σύνολο Tα στοιχεία του μεταβάλλονται μέσω εντολών εισαγωγής και διαγραφής διαγραφή εισαγωγή Δυναμικά Σύνολα Δυναμικό σύνολο Tα στοιχεία του μεταβάλλονται μέσω εντολών εισαγωγής
Διαβάστε περισσότεραΔυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1
Δυναμικός Κατακερματισμός Βάσεις Δεδομένων 2013-2014 Ευαγγελία Πιτουρά 1 Κατακερματισμός Τι αποθηκεύουμε στους κάδους; Στα παραδείγματα δείχνουμε μόνο την τιμή του πεδίου κατακερματισμού Την ίδια την εγγραφή
Διαβάστε περισσότεραΠίνακες Διασποράς. Χρησιμοποιούμε ένα πίνακα διασποράς T και μια συνάρτηση διασποράς h. Ένα στοιχείο με κλειδί k αποθηκεύεται στη θέση
Πίνακες Διασποράς Χρησιμοποιούμε ένα πίνακα διασποράς T και μια συνάρτηση διασποράς h Ένα στοιχείο με κλειδί k αποθηκεύεται στη θέση κλειδί k T 0 1 2 3 4 5 6 7 U : χώρος πιθανών κλειδιών Τ : πίνακας μεγέθους
Διαβάστε περισσότεραΔομές Δεδομένων. Ενότητα 12: Κατακερματισμός: Χειρισμός Συγκρούσεων. Καθηγήτρια Μαρία Σατρατζέμη. Τμήμα Εφαρμοσμένης Πληροφορικής.
Ενότητα 12: Κατακερματισμός: Χειρισμός Συγκρούσεων Καθηγήτρια Μαρία Σατρατζέμη Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες,
Διαβάστε περισσότεραΔιδάσκων: Κωνσταντίνος Κώστα
Διάλεξη Ε7: Επανάληψη Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Hashing, Final Exam Διδάσκων: Κωνσταντίνος Κώστα ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. και Μηχ. Υπολ. Ε7-1
Διαβάστε περισσότεραΔυναμικά Σύνολα. Δυναμικό σύνολο. Tα στοιχεία του μεταβάλλονται μέσω εντολών εισαγωγής και διαγραφής. διαγραφή. εισαγωγή
Δυναμικά Σύνολα Δυναμικό σύνολο Tα στοιχεία του μεταβάλλονται μέσω εντολών εισαγωγής και διαγραφής διαγραφή εισαγωγή Δυναμικά Σύνολα Δυναμικό σύνολο Tα στοιχεία του μεταβάλλονται μέσω εντολών εισαγωγής
Διαβάστε περισσότεραΔυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1
Δυναμικός Κατακερματισμός 1 Κατακερματισμός Τι αποθηκεύουμε στους κάδους; Στα παραδείγματα δείχνουμε μόνο την τιμή του πεδίου κατακερματισμού Την ίδια την εγγραφή (ως τρόπος οργάνωσης αρχείου) μέγεθος
Διαβάστε περισσότεραΠανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων
Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 2. Πίνακες 45 23 28 95 71 19 30 2 ομές εδομένων 4 5 Χρήστος ουλκερίδης Τμήμα Ψηφιακών Συστημάτων 12/10/2017
Διαβάστε περισσότεραΠίνακες Συμβόλων. εισαγωγή αναζήτηση επιλογή. εισαγωγή. αναζήτηση
Πίνακες Συμβόλων χειρότερη περίπτωση μέση περίπτωση εισαγωγή αναζήτηση επιλογή εισαγωγή αναζήτηση διατεταγμένος πίνακας διατεταγμένη λίστα μη διατεταγμένος πίνακας μη διατεταγμένη λίστα δένδρο αναζήτησης
Διαβάστε περισσότεραΔιάλεξη 18: Τεχνικές Κατακερματισμού I (Hashing)
ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 1 Διάλεξη 18: Τεχνικές Κατακερματισμού I (Hashing) Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Ανασκόπηση Προβλήματος και Προκαταρκτικών Λύσεων Bit-Διανύσματα
Διαβάστε περισσότεραΔυναμικά Σύνολα. Δυναμικό σύνολο. Tα στοιχεία του μεταβάλλονται μέσω εντολών εισαγωγής και διαγραφής. διαγραφή. εισαγωγή
Δυναμικά Σύνολα Δυναμικό σύνολο Tα στοιχεία του μεταβάλλονται μέσω εντολών εισαγωγής και διαγραφής διαγραφή εισαγωγή Δυναμικά Σύνολα Δυναμικό σύνολο Tα στοιχεία του μεταβάλλονται μέσω εντολών εισαγωγής
Διαβάστε περισσότεραΔυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1
Δυναμικός Κατακερματισμός Βάσεις Δεδομένων 2017-2018 1 Κατακερματισμός Πρόβλημα στατικού κατακερματισμού: Έστω Μ κάδους και r εγγραφές ανά κάδο - το πολύ Μ * r εγγραφές (αλλιώς μεγάλες αλυσίδες υπερχείλισης)
Διαβάστε περισσότεραAdvanced Data Indexing
Advanced Data Indexing (Προηγμένη ευρετηρίαση δεδομένων) Κατακερματισμός - Hashing (2 ο Μέρος) Μέθοδοι Κατακερματισμού integer universe Direct Addressing Hashing with chaining Hashing by Division Hashing
Διαβάστε περισσότεραΠανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων
Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 2. Πίνακες 45 23 28 95 71 19 30 2 ομές εδομένων 4 5 Χρήστος ουλκερίδης Τμήμα Ψηφιακών Συστημάτων 21/10/2016
Διαβάστε περισσότεραΔομές Δεδομένων. Ενότητα 11: Τεχνικές Κατακερματισμού. Καθηγήτρια Μαρία Σατρατζέμη. Τμήμα Εφαρμοσμένης Πληροφορικής.
Ενότητα 11: Τεχνικές Κατακερματισμού Καθηγήτρια Μαρία Σατρατζέμη Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται
Διαβάστε περισσότεραΔυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1
Δυναμικός Κατακερματισμός Βάσεις Δεδομένων 2018-2019 1 Κατακερματισμός Πρόβλημα στατικού κατακερματισμού: Έστω Μ κάδους και r εγγραφές ανά κάδο - το πολύ Μ * r εγγραφές (αλλιώς μεγάλες αλυσίδες υπερχείλισης)
Διαβάστε περισσότεραΕξωτερική Αναζήτηση. Ιεραρχία Μνήμης Υπολογιστή. Εξωτερική Μνήμη. Εσωτερική Μνήμη. Κρυφή Μνήμη (Cache) Καταχωρητές (Registers) μεγαλύτερη ταχύτητα
Ιεραρχία Μνήμης Υπολογιστή Εξωτερική Μνήμη Εσωτερική Μνήμη Κρυφή Μνήμη (Cache) μεγαλύτερη χωρητικότητα Καταχωρητές (Registers) Κεντρική Μονάδα (CPU) μεγαλύτερη ταχύτητα Πολλές σημαντικές εφαρμογές διαχειρίζονται
Διαβάστε περισσότεραΚατακερµατισµός. Οργάνωση Αρχείων (σύνοψη) Οργάνωση αρχείων: πως είναι τοποθετημένες οι εγγραφές ενός αρχείου όταν αποθηκεύονται στο δίσκο
Κατακερµατισµός 1 Οργάνωση Αρχείων (σύνοψη) Οργάνωση αρχείων: πως είναι τοποθετημένες οι εγγραφές ενός αρχείου όταν αποθηκεύονται στο δίσκο 1. Αρχεία Σωρού 2. Ταξινομημένα Αρχεία Φυσική διάταξη των εγγραφών
Διαβάστε περισσότεραCuckoo Hashing. Αλγόριθμοι και Πολυπλοκότητα. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο
Cuckoo Hashing Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο β Πολυτεχνείο Πρόβλημα (ADT) Λεξικού υναμικά μεταβαλλόμενη συλλογή αντικειμένων που αναγνωρίζονται με «κλειδί» (π.χ.
Διαβάστε περισσότεραΣύνοψη Προηγούμενου. Λίστες (Lists) Συνδεδεμένες Λίστες: Εισαγωγή (1/2) Συνδεδεμένες Λίστες. Ορέστης Τελέλης
Σύνοψη Προηγούμενου Λίστες (Lists) Ορέστης Τελέλης telelis@unipi.gr Τμήμα Ψηφιακών Συστημάτων, Πανεπιστήμιο Πειραιώς Στοίβες (Stacks) : στην κορυφή της στοίβας ( ) από την κορυφή της στοίβας ( ) Ουρές
Διαβάστε περισσότεραAdvanced Data Indexing
Advanced Data Indexing (Προηγμένη ευρετηρίαση δεδομένων) Κατακερματισμός Hashing (1ο Μέρος) Η Αναζήτηση απαιτεί Δομές Λύσεις Για να υποστηριχθεί η αποδοτική αναζήτηση απαιτείται η χρήση κατάλληλων δομών-ευρετηρίων
Διαβάστε περισσότεραΣύνοψη Προηγούμενου (1/2) Στοίβες, Ουρές, Ουρές Προτεραιότητας. Σύνοψη Προηγούμενου (2/2) Σημερινό Μάθημα. Πίνακες. Εισαγωγή, σε χρόνο O(1).
Σύνοψη Προηγούμενου (1/2) Στοίβες, Ουρές, Ουρές Προτεραιότητας Ορέστης Τελέλης telelis@unipi.gr Τμήμα Ψηφιακών Συστημάτων, Πανεπιστήμιο Πειραιώς Πίνακες Εισαγωγή, σε χρόνο O(1). Αναζήτηση, σε χρόνο O(n).
Διαβάστε περισσότεραΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Δοµές Δεδοµένων
ΟΝΟΜΑΤΕΠΩΝΥΜΟ: ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ AM: Δοµές Δεδοµένων Εξεταστική Ιανουαρίου 2014 Διδάσκων : Ευάγγελος Μαρκάκης 20.01.2014 ΥΠΟΓΡΑΦΗ ΕΠΟΠΤΗ: Διάρκεια εξέτασης : 2 ώρες και
Διαβάστε περισσότεραΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Δοµές Δεδοµένων
ΟΝΟΜΑΤΕΠΩΝΥΜΟ: ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ AM: Δοµές Δεδοµένων Πτυχιακή Εξεταστική Ιούλιος 2014 Διδάσκων : Ευάγγελος Μαρκάκης 09.07.2014 ΥΠΟΓΡΑΦΗ ΕΠΟΠΤΗ: Διάρκεια εξέτασης : 2 ώρες
Διαβάστε περισσότεραΑλγόριθμοι και Δομές Δεδομένων (IΙ) (γράφοι και δένδρα)
Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2016-17 Αλγόριθμοι και Δομές Δεδομένων (IΙ) (γράφοι και δένδρα) http://mixstef.github.io/courses/csintro/ Μ.Στεφανιδάκης Αφηρημένες
Διαβάστε περισσότεραΣτόχοι και αντικείμενο ενότητας. Πέρασμα Πίνακα σε Συνάρτηση (συν.) Πέρασμα Πίνακα σε Συνάρτηση. #8.. Ειδικά Θέματα Αλγορίθμων
Στόχοι και αντικείμενο ενότητας Πέρασμα Πίνακα σε Συνάρτηση #8.. Ειδικά Θέματα Αλγορίθμων Προβλήματα Αναζήτησης Γραμμική Αναζήτηση (Linear Search) Ενημέρωση Μέτρηση Δυαδική Αναζήτηση (Binary Search) Προβλήματα
Διαβάστε περισσότεραΣτην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα:
Τεχνικές Κατακερµατισµού Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Τεχνικές Κατακερµατισµού ιαχείριση Συγκρούσεων µε Αλυσίδωση ιαχείριση Συγκρούσεων µε Ανοικτή ιεύθυνση ιπλός Κατακερµατισµός,
Διαβάστε περισσότεραΔιδάσκων: Παναγιώτης Ανδρέου
Διάλεξη 35: Τεχνικές Κατακερματισμού (Hashing) Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: -Ανασκόπηση Προβλήματος και Προκαταρκτικών Λύσεων Bit-Διανύσματα - Τεχνικές Κατακερματισμού & Συναρτήσεις
Διαβάστε περισσότεραΕΝΟΤΗΤΑ 8 KATAKEΡΜΑΤΙΣΜΟΣ (HASHING)
ΕΝΟΤΗΤΑ 8 KATAKEΡΜΑΤΙΣΜΟΣ (HASHING) Κατακερµατισµός Στόχος Έχουµε ένα σύνολο από κλειδιά {Κ 0,, Κ n-1 } και θέλουµε να υλοποιήσουµε Insert() και LookUp() (ίσως και Delete()) απλά και γρήγορα στην πράξη.
Διαβάστε περισσότεραΔοµές Δεδοµένων. 16η Διάλεξη Κατακερµατισµός. Ε. Μαρκάκης
Δοµές Δεδοµένων 16η Διάλεξη Κατακερµατισµός Ε. Μαρκάκης Περίληψη Συναρτήσεις κατακερµατισµού Χωριστή αλυσίδωση Γραµµική διερεύνηση Διπλός κατακερµατισµός Δυναµικός κατακερµατισµός Προοπτική Δοµές Δεδοµένων
Διαβάστε περισσότεραΟυρές Προτεραιότητας: Υπενθύμιση. Σωροί / Αναδρομή / Ταξινόμηση. Υλοποίηση Σωρού. Σωρός (Εισαγωγή) Ορέστης Τελέλης
Ουρές Προτεραιότητας: Υπενθύμιση Σωροί / Αναδρομή / Ταξινόμηση Ορέστης Τελέλης telelis@unipi.gr Τμήμα Ψηφιακών Συστημάτων, Πανεπιστήμιο Πειραιώς (Abstract Data Type) με μεθόδους: Μπορεί να υλοποιηθεί με
Διαβάστε περισσότεραΠίνακες Κατακερματισμού. Hash Tables. Προγραμματισμός II 1
Πίνακες Κατακερματισμού Hash Tables Προγραμματισμός II lalis@inf.uth.gr Δομές αναζήτησης μέχρι στιγμής Δομή Αναζήτηση Table Ο(Ν) Sorted Table Ο(log N) List Ο(Ν) Sorted List Ο(N) Balanced Binary Tree Ο(log
Διαβάστε περισσότεραΗ πρώτη παράμετρος είναι ένα αλφαριθμητικό μορφοποίησης
Η συνάρτηση printf() Η συνάρτηση printf() χρησιμοποιείται για την εμφάνιση δεδομένων στο αρχείο εξόδου stdout (standard output stream), το οποίο εξ ορισμού συνδέεται με την οθόνη Η συνάρτηση printf() δέχεται
Διαβάστε περισσότεραΚεφ.11: Ευρετήρια και Κατακερματισμός
Κεφ.11: Ευρετήρια και Κατακερματισμός Database System Concepts, 6 th Ed. See www.db-book.com for conditions on re-use Κεφ. 11: Ευρετήρια-Βασική θεωρία Μηχανισμοί ευρετηρίου χρησιμοποιούνται για την επιτάχυνση
Διαβάστε περισσότεραΤύποι Δεδομένων και Απλές Δομές Δεδομένων. Παύλος Εφραιμίδης V1.0 ( )
Τύποι Δεδομένων και Απλές Δομές Δεδομένων Παύλος Εφραιμίδης V1.0 (2014-01-13) Απλές Δομές Δεδομένων Στην ενότητα αυτή θα γνωρίσουμε ορισμένες απλές Δομές Δεδομένων και θα τις χρησιμοποιήσουμε για την αποδοτική
Διαβάστε περισσότεραStandard Template Library (STL) C++ library
Τ Μ Η Μ Α Μ Η Χ Α Ν Ι Κ Ω Ν Η / Υ Κ Α Ι Π Λ Η Ρ Ο Φ Ο Ρ Ι Κ Η Σ Standard Template Library (STL) C++ library Δομές Δεδομένων Μάριος Κενδέα kendea@ceid.upatras.gr Εισαγωγή Η Standard Βιβλιοθήκη προτύπων
Διαβάστε περισσότεραΚΑΤΑΚΕΡΜΑΤΙΣΜΟΣ HASHING
ΚΑΤΑΚΕΡΜΑΤΙΣΜΟΣ HASHING ΣΑΛΤΟΓΙΑΝΝΗ ΑΘΑΝΑΣΙΑ saltogiann@ceid.upatras.gr ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΤΟ ΠΡOΒΛΗΜΑ ΤΟΥ ΚΑΤΑΚΕΡΜΑΤΙΣΜΟY Θέλουμε τα δεδομένα που διαθέτουμε να μπορούν να αποθηκευτούν σε κάποιο πίνακα ή
Διαβάστε περισσότεραΗΥ240: οµές εδοµένων Χειµερινό Εξάµηνο Ακαδηµαϊκό Έτος Παναγιώτα Φατούρου. Προγραµµατιστική Εργασία 3 ο Μέρος
Πανεπιστήµιο Κρήτης, Τµήµα Επιστήµης Υπολογιστών 6 εκεµβρίου 2008 ΗΥ240: οµές εδοµένων Χειµερινό Εξάµηνο Ακαδηµαϊκό Έτος 2008-09 Παναγιώτα Φατούρου Προγραµµατιστική Εργασία 3 ο Μέρος Ηµεροµηνία Παράδοσης:
Διαβάστε περισσότεραHY240 : Δομές Δεδομένων. Φροντιστήριο Προγραμματιστικής Εργασίας 2 ο και 3 ο Μέρος
HY240 : Δομές Δεδομένων Φροντιστήριο Προγραμματιστικής Εργασίας 2 ο και 3 ο Μέρος Εισαγωγή Στο 2 ο μέρος της εργασίας θα πρέπει να γίνουν τροποποιήσεις στο πρόγραμμα που προέκυψε κατά την υλοποίηση του
Διαβάστε περισσότεραΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΕΠΛ231: Δομές Δεδομένων και Αλγόριθμοι. Εαρινό Εξάμηνο Φροντιστήριο 10 ΛΥΣΕΙΣ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ31: Δομές Δεδομένων και Αλγόριθμοι Εαρινό Εξάμηνο 013 Φροντιστήριο 10 ΛΥΣΕΙΣ Άσκηση 1 Να δείξετε όλα τα στάδια της εκτέλεσης του αλγορίθμου του Dijkstra για εύρεση
Διαβάστε περισσότεραΟι βασικές λειτουργίες (ή πράξεις) που γίνονται σε μια δομή δεδομένων είναι:
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Μια δομή δεδομένων στην πληροφορική, συχνά αναπαριστά οντότητες του φυσικού κόσμου στον υπολογιστή. Για την αναπαράσταση αυτή, δημιουργούμε πρώτα ένα αφηρημένο μοντέλο στο οποίο προσδιορίζονται
Διαβάστε περισσότεραΔυναμικός Κατακερματισμός
Δυναμικός Κατακερματισμός Καλό για βάση δεδομένων που μεγαλώνει και συρρικνώνεται σε μέγεθος Επιτρέπει τη δυναμική τροποποίηση της συνάρτησης κατακερματισμού Επεκτάσιμος κατακερματισμός μια μορφή δυναμικού
Διαβάστε περισσότεραΠρογραμματισμός Η/Υ (ΤΛ2007 )
Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε.Ι. Κρήτης Προγραμματισμός Η/Υ (ΤΛ2007 ) Δρ. Μηχ. Νικόλαος Πετράκης (npet@chania.teicrete.gr) Ιστοσελίδα Μαθήματος: https://eclass.chania.teicrete.gr/ Εξάμηνο: Εαρινό 2015-16
Διαβάστε περισσότεραΕνότητα 3: ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ
Ενότητα 3: ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ ΔΕΔΟΜΕΝΑ ΑΛΓΟΡΙΘΜΟΙ -ΠΛΗΡΟΦΟΡΙΑ: Δεδομένα: Αναπαράσταση της Πραγματικότητας Μπορούν να γίνουν αντιληπτά με μια από τις αισθήσεις μας Πληροφορία: Προκύπτει από
Διαβάστε περισσότεραΠληροφορική 2. Δομές δεδομένων και αρχείων
Πληροφορική 2 Δομές δεδομένων και αρχείων 1 2 Δομή Δεδομένων (data structure) Δομή δεδομένων είναι μια συλλογή δεδομένων που έχουν μεταξύ τους μια συγκεκριμένη σχέση Παραδείγματα δομών δεδομένων Πίνακες
Διαβάστε περισσότεραΔομημένος Προγραμματισμός (ΤΛ1006)
Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κρήτης Σχολή Εφαρμοσμένων Επιστημών Τμήμα Ηλεκτρονικών Μηχανικών Τομέας Αυτοματισμού και Πληροφορικής Δομημένος Προγραμματισμός (ΤΛ1006) Δρ. Μηχ. Νικόλαος Πετράκης, Καθηγητής
Διαβάστε περισσότεραΕισαγωγή στο Bison. Μεταγλωττιστές, Χειμερινό εξάμηνο
Εισαγωγή στο Bison Μεταγλωττιστές, Χειμερινό εξάμηνο 2016-2017 Συντακτική Ανάλυση Αποτελεί την δεύτερη φάση της μετάφρασης. Εύρεση της σχέσης που υπάρχει των λεκτικών μονάδων ενός προγράμματος. Παράδειγμα
Διαβάστε περισσότεραΑλγόριθμοι και Δομές Δεδομένων (Ι) (εισαγωγικές έννοιες)
Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2015-16 Αλγόριθμοι και Δομές Δεδομένων (Ι) (εισαγωγικές έννοιες) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Τι είναι
Διαβάστε περισσότεραΔομές Δεδομένων Standard Template Library (STL) 23/3/2017 ΜΠΟΜΠΟΤΑΣ ΑΓΟΡΑΚΗΣ
Δομές Δεδομένων Standard Template Library (STL) 23/3/2017 ΜΠΟΜΠΟΤΑΣ ΑΓΟΡΑΚΗΣ mpompotas@ceid.upatras.gr Εισαγωγή - STL Η Standard Βιβλιοθήκη προτύπων (STL) είναι μια βιβλιοθήκη λογισμικού για την C++ Δημιουργήθηκε
Διαβάστε περισσότεραΕισαγωγή στην Επεξεργασία Ερωτήσεων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1
Εισαγωγή στην Επεξεργασία Ερωτήσεων 1 Επεξεργασία Ερωτήσεων Θα δούμε την «πορεία» μιας SQL ερώτησης (πως εκτελείται) Ερώτηση SQL Ερώτηση ΣΒΔ Αποτέλεσμα 2 Βήματα Επεξεργασίας Τα βασικά βήματα στην επεξεργασία
Διαβάστε περισσότεραΠρογραμματισμός Η/Υ. Ενότητα 8: Ειδικά Θέματα Αλγορίθμων
Προγραμματισμός Η/Υ Ενότητα 8: Ειδικά Θέματα Αλγορίθμων Νίκος Καρακαπιλίδης, Καθηγητής Δημήτρης Σαραβάνος, Καθηγητής Πολυτεχνική Σχολή Τμήμα Μηχανολόγων & Αεροναυπηγών Μηχανικών Σκοποί ενότητας Κατανόηση
Διαβάστε περισσότεραΆσκηση 1. με κόκκινο χρώμα σημειώνονται οι κρίσιμοι κόμβοι
Άσκηση 1 α) Παρουσιάστε τα AVL δέντρα που προκύπτουν από τις εισαγωγές των κλειδιών 1, 4, 9,, 7,,, 1, 4 και σε ένα αρχικά άδειο AVL δέντρο με κόκκινο χρώμα σημειώνονται οι κρίσιμοι κόμβοι +4 +9 + 1 1 1
Διαβάστε περισσότεραΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δομές δεδομένων. Ενότητα 6η: Κατακερματισμός Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών
ΕΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Δομές δεδομένων Ενότητα 6η: Κατακερματισμός Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών Ενότητα 6 Κατακερματισμός ΗΥ240 - Παναγιώτα Φατούρου 2 Κατακερματισμός -
Διαβάστε περισσότεραΤι είναι αλγόριθμος; Υποπρογράμματα (υποαλγόριθμοι) Βασικές αλγοριθμικές δομές
Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2015-16 Αλγόριθμοι και Δομές Δεδομένων (Ι) (εισαγωγικές έννοιες) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Τι είναι
Διαβάστε περισσότεραΔομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων
Δομημένος Προγραμματισμός Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr 2 Κανόνες
Διαβάστε περισσότεραΠεριεχόμενα. Περιεχόμενα
Περιεχόμενα xv Περιεχόμενα 1 Αρχές της Java... 1 1.1 Προκαταρκτικά: Κλάσεις, Τύποι και Αντικείμενα... 2 1.1.1 Βασικοί Τύποι... 5 1.1.2 Αντικείμενα... 7 1.1.3 Τύποι Enum... 14 1.2 Μέθοδοι... 15 1.3 Εκφράσεις...
Διαβάστε περισσότεραΠανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων
Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 3. Στοίβες & Ουρές 2 ομές εδομένων 4 5 Χρήστος ουλκερίδης Τμήμα Ψηφιακών Συστημάτων 19/10/2017 Ανακεφαλαίωση:
Διαβάστε περισσότεραΠΑΡΑΡΤΗΜΑ: QUIZ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ
ΠΑΡΑΡΤΗΜΑ: QUIZ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ (Οι ερωτήσεις µε κίτρινη υπογράµµιση είναι εκτός ύλης για φέτος) ΕΙΣΑΓΩΓΗ Q1. Οι Πρωταρχικοί τύποι (primitive types) στη Java 1. Είναι όλοι οι ακέραιοι και όλοι οι πραγµατικοί
Διαβάστε περισσότεραΠανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων
Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 3. Στοίβες & Ουρές 2 ομές εδομένων 4 5 Χρήστος ουλκερίδης Τμήμα Ψηφιακών Συστημάτων 4/11/2016 Ανακεφαλαίωση:
Διαβάστε περισσότεραΚεφάλαιο 13. Αποθήκευση σε ίσκους, Βασικές οµέςαρχείων, και Κατακερµατισµός. ιαφάνεια 13-1
ιαφάνεια 13-1 Κεφάλαιο 13 Αποθήκευση σε ίσκους, Βασικές οµέςαρχείων, και Κατακερµατισµός ίαβλος, Επιµ.Μ.Χατζόπουλος 1 Γιατί θα µιλήσουµε Μονάδες Αποθήκευσης ίσκων Αρχεία Εγγραφών Πράξεις σε αρχεία Αρχεία
Διαβάστε περισσότεραΒασικές δοµές δεδοµένων. Ορολογία λιστών. 8.1 Βασικές έννοιες δοµών δεδοµένων 8.2 Υλοποίηση δοµών δεδοµένων 8.3 Μια σύντοµη υπόθεση εργασίας
ΚΕΦΑΛΑΙΟ 8: Αφηρηµένοι τύποι δεδοµένων 8.1 οµές δεδοµένων (data structures) 8.1 Βασικές έννοιες δοµών δεδοµένων 8.2 Υλοποίηση δοµών δεδοµένων 8.3 Μια σύντοµη υπόθεση εργασίας Αδόµητα δεδοµένα οδός Ζέας
Διαβάστε περισσότεραΔομές Δεδομένων και Αλγόριθμοι
Δομές Δεδομένων και Αλγόριθμοι Χρήστος Γκόγκος ΤΕΙ Ηπείρου Χειμερινό Εξάμηνο 2014-2015 Παρουσίαση 1 Εισαγωγή 1 / 14 Δομές Δεδομένων και Αλγόριθμοι Δομή Δεδομένων Δομή δεδομένων είναι ένα σύνολο αποθηκευμένων
Διαβάστε περισσότεραΠρογραμματιστικές Τεχνικές
Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Αγρονόμων Τοπογράφων Μηχανικών Προγραμματιστικές Τεχνικές Βασίλειος Βεσκούκης Δρ. Ηλεκτρολόγος Μηχανικός & Μηχανικός Υπολογιστών ΕΜΠ Επικ. Καθηγητής ΕΜΠ v.vescoukis@cs.ntua.gr
Διαβάστε περισσότεραΤαξινόμηση κάδου και ταξινόμηση Ρίζας Bucket-Sort και Radix-Sort
Ταξινόμηση κάδου και ταξινόμηση Ρίζας Bucket-Sort και Radix-Sort 1, c 3, a 3, b 7, d 7, g 7, e B 0 1 3 4 5 6 7 8 9 1 BucketSort (Ταξινόμηση Κάδου) - Αρχικά θεωρείται ένα κριτήριο κατανομής με βάση το οποίο
Διαβάστε περισσότεραΕργαστήριο 2 Δυναμικές Δομές Δεδομένων Διδάσκοντες: Δρ. Γεώργιος Δημητρίου Δρ. Άχμεντ Μάχντι
Μεταγλωττιστές Εργαστήριο 2 Δυναμικές Δομές Δεδομένων Διδάσκοντες: Δρ. Γεώργιος Δημητρίου Δρ. Άχμεντ Μάχντι 2015-1016 Δομές Δεδομένων Μια δομή δεδομένων είναι μια συλλογή δεδομένων με κάποιες ιδιότητες
Διαβάστε περισσότεραΟργάνωση Αρχείων. Βάσεις Δεδομένων : Οργάνωση Αρχείων 1. Blobs
Αρχεία Τα δεδομένα συνήθως αποθηκεύονται σε αρχεία στο δίσκο Οργάνωση Αρχείων Η μεταφορά δεδομένων από το δίσκο στη μνήμη και από τη μνήμη στο δίσκο γίνεται σε μονάδες blocks Βασικός στόχος η ελαχιστοποίηση
Διαβάστε περισσότεραΤΕΙ ΙΟΝΙΩΝ ΝΗΣΩΝ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ - ΕΙΣ
ΤΕΙ ΙΟΝΙΩΝ ΝΗΣΩΝ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ - ΕΙΣ. ΚΑΤΕΥΘΥΝΣΗ ΔΙΟΙΚΗΣΗΣ ΤΟΥΡΙΣΤΙΚΩΝ ΕΠΙΧΕΙΡΗΣΕΩΝ ΚΑΙ ΕΠΙΧΕΙΡΗΣΕΩΝ ΦΙΛΟΞΕΝΙΑΣ Πληροφορική I "Προγραμματισμός" B. Φερεντίνος
Διαβάστε περισσότεραΕπιµέλεια Θοδωρής Πιερράτος
εδοµένα οµές δεδοµένων και αλγόριθµοι Τα δεδοµένα είναι ακατέργαστα γεγονότα. Η συλλογή των ακατέργαστων δεδοµένων και ο συσχετισµός τους δίνει ως αποτέλεσµα την πληροφορία. Η µέτρηση, η κωδικοποίηση,
Διαβάστε περισσότεραΑριθμοθεωρητικοί Αλγόριθμοι
Αλγόριθμοι που επεξεργάζονται μεγάλους ακέραιους αριθμούς Μέγεθος εισόδου: Αριθμός bits που απαιτούνται για την αναπαράσταση των ακεραίων. Έστω ότι ένας αλγόριθμος λαμβάνει ως είσοδο έναν ακέραιο Ο αλγόριθμος
Διαβάστε περισσότεραΔιάλεξη 16: Σωροί. Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Ουρές Προτεραιότητας - Ο ΑΤΔ Σωρός, Υλοποίηση και πράξεις
ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 1 Διάλεξη 16: Σωροί Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Ουρές Προτεραιότητας - Ο ΑΤΔ Σωρός, Υλοποίηση και πράξεις Ουρά Προτεραιότητας Η δομή
Διαβάστε περισσότεραΤμήμα Χρηματοοικονομικής & Ελεγκτικής ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας. Πληροφορική Ι. Αναπαράσταση αριθμών στο δυαδικό σύστημα. Δρ.
Τμήμα Χρηματοοικονομικής & Ελεγκτικής ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας Πληροφορική Ι Αναπαράσταση αριθμών στο δυαδικό σύστημα Δρ. Γκόγκος Χρήστος Δεκαδικό σύστημα αρίθμησης Ελληνικό - Ρωμαϊκό Σύστημα αρίθμησης
Διαβάστε περισσότεραΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ
ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ Ενότητα 7: Αφαίρεση δεδόμενων Πασχαλίδης Δημοσθένης Τμήμα Διαχείρισης Εκκλησιαστικών Κειμηλίων Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.
Διαβάστε περισσότεραΜεταγλωττιστές. Συντακτικός Αναλυτής Κατασκευή Πίνακα Συμβόλων (ΠΣ) Εργαστήριο 7. Διδάσκοντες: Δρ. Γεώργιος Δημητρίου Δρ. Άχμεντ Μάχντι
Μεταγλωττιστές Εργαστήριο 7 Συντακτικός Αναλυτής Κατασκευή Πίνακα Συμβόλων (ΠΣ) Διδάσκοντες: Δρ. Γεώργιος Δημητρίου Δρ. Άχμεντ Μάχντι 2016-2017 Πίνακας Συμβόλων Συγκεντρώνει πληροφορίες για τα ονόματα
Διαβάστε περισσότεραΚΕΦΑΛΑΙΟ 2: Τύποι δεδομένων και εμφάνιση στοιχείων...33
ΠΕΡΙΕΧΟΜΕΝΑ Πρόλογος του συγγραφέα... 13 Πρόλογος του καθηγητή Τιμολέοντα Σελλή... 15 ΚΕΦΑΛΑΙΟ 1: Εργαλεία γλωσσών προγραμματισμού...17 1.1 Γλώσσες προγραμματισμού τρίτης γεννεάς... 18 τι είναι η γλώσσα
Διαβάστε περισσότεραΚεφάλαιο 2 ο Βασικές Έννοιες Αλγορίθμων (σελ )
Κεφάλαιο 2 ο Βασικές Έννοιες Αλγορίθμων (σελ. 25 48) Τι είναι αλγόριθμος; Γ ΛΥΚΕΙΟΥ Αλγόριθμος είναι μία πεπερασμένη σειρά ενεργειών, αυστηρά καθορισμένων και εκτελέσιμων σε πεπερασμένο χρονικό διάστημα,
Διαβάστε περισσότεραHY-252 Αντικειμενοστραφής Προγραμματισμός. Χειμερινό Εξάμηνο 2012 Διδάσκων: Χριστοφίδης Βασίλης. Ημερομηνία Παράδοσης: 16/11/2012
HY-252 Αντικειμενοστραφής Προγραμματισμός Χειμερινό Εξάμηνο 2012 Διδάσκων: Χριστοφίδης Βασίλης 2 η Σειρά Ασκήσεων Ημερομηνία Παράδοσης: 16/11/2012 Παρακάτω σας δίνονται οι ορισμοί τεσσάρων διαφορετικών
Διαβάστε περισσότεραΗΥ240: Δομές Δεδομένων Εαρινό Εξάμηνο Ακαδημαϊκό Έτος 2017 Διδάσκουσα: Παναγιώτα Φατούρου Προγραμματιστική Εργασία - 2o Μέρος
ΗΥ240: Δομές Δεδομένων Εαρινό Εξάμηνο Ακαδημαϊκό Έτος 2017 Διδάσκουσα: Παναγιώτα Φατούρου Προγραμματιστική Εργασία - 2o Μέρος Ημερομηνία Παράδοσης: Δευτέρα, 15 Μαΐου 2017, ώρα 23:59. Τρόπος Παράδοσης:
Διαβάστε περισσότεραΔοµές Δεδοµένων. 15η Διάλεξη Δέντρα Δυαδικής Αναζήτησης και Κατακερµατισµός. Ε. Μαρκάκης
Δοµές Δεδοµένων 15η Διάλεξη Δέντρα Δυαδικής Αναζήτησης και Κατακερµατισµός Ε. Μαρκάκης Περίληψη Υλοποιήσεις άλλων λειτουργιών σε ΔΔΑ: Επιλογή k-οστού µικρότερου Διαµέριση Αφαίρεση στοιχείου Ένωση 2 δέντρων
Διαβάστε περισσότεραH κλάση ArrayList. Γιώργος Θάνος. Γραφείο Γ. Γκλαβάνη 37. Αντικει ενοστραφής Προγρα. ος όροφος
H κλάση ArrayList Γιώργος Θάνος Γραφείο Γ ος όροφος Γκλαβάνη 37 Εισαγωγικά Η κλάση ArrayList δίνει την δυνατότητα να αποθηκεύσουμε δεδομένα οποιουδήποτε τύπου σε μία δομή δεδομένων η οποία επιτρέπει τα
Διαβάστε περισσότεραΆσκηση 1 (ανακοινώθηκε στις 20 Μαρτίου 2017, προθεσμία παράδοσης: 24 Απριλίου 2017, 12 τα μεσάνυχτα).
Κ08 Δομές Δεδομένων και Τεχνικές Προγραμματισμού Διδάσκων: Μανόλης Κουμπαράκης Εαρινό Εξάμηνο 2016-2017. Άσκηση 1 (ανακοινώθηκε στις 20 Μαρτίου 2017, προθεσμία παράδοσης: 24 Απριλίου 2017, 12 τα μεσάνυχτα).
Διαβάστε περισσότεραΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΛΥΣΗ ΣΤΗΝ ΕΥΤΕΡΗ ΑΣΚΗΣΗ
ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΛΥΣΗ ΣΤΗΝ ΕΥΤΕΡΗ ΑΣΚΗΣΗ ΜΑΘΗΜΑ ΒΑΣΕΙΣ Ε ΟΜΕΝΩΝ ΑΚΑ. ΕΤΟΣ 2012-13 Ι ΑΣΚΟΝΤΕΣ Ιωάννης Βασιλείου Καθηγητής, Τοµέας Τεχνολογίας
Διαβάστε περισσότερα