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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ταξινόμηση: Εισαγωγικά. Ταξινόμηση (Sor ng) Αλγόριθμοι Απλής Ταξινόμησης. Βασικά Βήματα των Αλγορίθμων

Ταξινόμηση: Εισαγωγικά. Ταξινόμηση (Sor ng) Αλγόριθμοι Απλής Ταξινόμησης. Βασικά Βήματα των Αλγορίθμων Ταξινόμηση: Εισαγωγικά Ταξινόμηση (Sor ng) Ορέστης Τελέλης Βασικό πρόβλημα για την Επιστήμη των Υπολογιστών. π.χ. αλφαβητική σειρά, πωλήσεις ανά τιμή, πόλεις με βάση πληθυσμό, Μπορεί να είναι ένα πρώτο

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

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

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

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

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

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

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

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

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

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

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

Κατακερματισμός (Hashing) Κατακερματισμός (Hashing) O κατακερματισμός είναι μια τεχνική οργάνωσης ενός αρχείου. Είναι αρκετά δημοφιλής μέθοδος για την οργάνωση αρχείων Βάσεων Δεδομένων, καθώς βοηθάει σημαντικά στην γρήγορη αναζήτηση

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Διδάσκων: Κωνσταντίνος Κώστα

Διδάσκων: Κωνσταντίνος Κώστα Διάλεξη Ε7: Επανάληψη Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Hashing, Final Exam Διδάσκων: Κωνσταντίνος Κώστα ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. και Μηχ. Υπολ. Ε7-1

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Advanced Data Indexing

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Σύνοψη Προηγούμενου. Λίστες (Lists) Συνδεδεμένες Λίστες: Εισαγωγή (1/2) Συνδεδεμένες Λίστες. Ορέστης Τελέλης

Σύνοψη Προηγούμενου. Λίστες (Lists) Συνδεδεμένες Λίστες: Εισαγωγή (1/2) Συνδεδεμένες Λίστες. Ορέστης Τελέλης Σύνοψη Προηγούμενου Λίστες (Lists) Ορέστης Τελέλης telelis@unipi.gr Τμήμα Ψηφιακών Συστημάτων, Πανεπιστήμιο Πειραιώς Στοίβες (Stacks) : στην κορυφή της στοίβας ( ) από την κορυφή της στοίβας ( ) Ουρές

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

Advanced Data Indexing

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

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

Σύνοψη Προηγούμενου (1/2) Στοίβες, Ουρές, Ουρές Προτεραιότητας. Σύνοψη Προηγούμενου (2/2) Σημερινό Μάθημα. Πίνακες. Εισαγωγή, σε χρόνο O(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Ι) (γράφοι και δένδρα)

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

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

Στόχοι και αντικείμενο ενότητας. Πέρασμα Πίνακα σε Συνάρτηση (συν.) Πέρασμα Πίνακα σε Συνάρτηση. #8.. Ειδικά Θέματα Αλγορίθμων

Στόχοι και αντικείμενο ενότητας. Πέρασμα Πίνακα σε Συνάρτηση (συν.) Πέρασμα Πίνακα σε Συνάρτηση. #8.. Ειδικά Θέματα Αλγορίθμων Στόχοι και αντικείμενο ενότητας Πέρασμα Πίνακα σε Συνάρτηση #8.. Ειδικά Θέματα Αλγορίθμων Προβλήματα Αναζήτησης Γραμμική Αναζήτηση (Linear Search) Ενημέρωση Μέτρηση Δυαδική Αναζήτηση (Binary Search) Προβλήματα

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

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

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

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

Διδάσκων: Παναγιώτης Ανδρέου

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

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

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

ΕΝΟΤΗΤΑ 8 KATAKEΡΜΑΤΙΣΜΟΣ (HASHING) ΕΝΟΤΗΤΑ 8 KATAKEΡΜΑΤΙΣΜΟΣ (HASHING) Κατακερµατισµός Στόχος Έχουµε ένα σύνολο από κλειδιά {Κ 0,, Κ n-1 } και θέλουµε να υλοποιήσουµε Insert() και LookUp() (ίσως και Delete()) απλά και γρήγορα στην πράξη.

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

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

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

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

Ουρές Προτεραιότητας: Υπενθύμιση. Σωροί / Αναδρομή / Ταξινόμηση. Υλοποίηση Σωρού. Σωρός (Εισαγωγή) Ορέστης Τελέλης

Ουρές Προτεραιότητας: Υπενθύμιση. Σωροί / Αναδρομή / Ταξινόμηση. Υλοποίηση Σωρού. Σωρός (Εισαγωγή) Ορέστης Τελέλης Ουρές Προτεραιότητας: Υπενθύμιση Σωροί / Αναδρομή / Ταξινόμηση Ορέστης Τελέλης telelis@unipi.gr Τμήμα Ψηφιακών Συστημάτων, Πανεπιστήμιο Πειραιώς (Abstract Data Type) με μεθόδους: Μπορεί να υλοποιηθεί με

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

Πίνακες Κατακερματισμού. Hash Tables. Προγραμματισμός II 1

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

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

Τύποι Δεδομένων και Απλές Δομές Δεδομένων. Παύλος Εφραιμίδης V1.0 ( )

Τύποι Δεδομένων και Απλές Δομές Δεδομένων. Παύλος Εφραιμίδης V1.0 ( ) Τύποι Δεδομένων και Απλές Δομές Δεδομένων Παύλος Εφραιμίδης V1.0 (2014-01-13) Απλές Δομές Δεδομένων Στην ενότητα αυτή θα γνωρίσουμε ορισμένες απλές Δομές Δεδομένων και θα τις χρησιμοποιήσουμε για την αποδοτική

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

Standard Template Library (STL) C++ library

Standard Template Library (STL) C++ library Τ Μ Η Μ Α Μ Η Χ Α Ν Ι Κ Ω Ν Η / Υ Κ Α Ι Π Λ Η Ρ Ο Φ Ο Ρ Ι Κ Η Σ Standard Template Library (STL) C++ library Δομές Δεδομένων Μάριος Κενδέα kendea@ceid.upatras.gr Εισαγωγή Η Standard Βιβλιοθήκη προτύπων

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

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

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

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

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

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

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

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

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΕΠΛ231: Δομές Δεδομένων και Αλγόριθμοι. Εαρινό Εξάμηνο Φροντιστήριο 10 ΛΥΣΕΙΣ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΕΠΛ231: Δομές Δεδομένων και Αλγόριθμοι. Εαρινό Εξάμηνο Φροντιστήριο 10 ΛΥΣΕΙΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ31: Δομές Δεδομένων και Αλγόριθμοι Εαρινό Εξάμηνο 013 Φροντιστήριο 10 ΛΥΣΕΙΣ Άσκηση 1 Να δείξετε όλα τα στάδια της εκτέλεσης του αλγορίθμου του Dijkstra για εύρεση

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

Οι βασικές λειτουργίες (ή πράξεις) που γίνονται σε μια δομή δεδομένων είναι:

Οι βασικές λειτουργίες (ή πράξεις) που γίνονται σε μια δομή δεδομένων είναι: ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Μια δομή δεδομένων στην πληροφορική, συχνά αναπαριστά οντότητες του φυσικού κόσμου στον υπολογιστή. Για την αναπαράσταση αυτή, δημιουργούμε πρώτα ένα αφηρημένο μοντέλο στο οποίο προσδιορίζονται

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

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

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

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

Προγραμματισμός Η/Υ (ΤΛ2007 )

Προγραμματισμός Η/Υ (ΤΛ2007 ) Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε.Ι. Κρήτης Προγραμματισμός Η/Υ (ΤΛ2007 ) Δρ. Μηχ. Νικόλαος Πετράκης (npet@chania.teicrete.gr) Ιστοσελίδα Μαθήματος: https://eclass.chania.teicrete.gr/ Εξάμηνο: Εαρινό 2015-16

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

Ενότητα 3: ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ

Ενότητα 3: ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ Ενότητα 3: ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ ΔΕΔΟΜΕΝΑ ΑΛΓΟΡΙΘΜΟΙ -ΠΛΗΡΟΦΟΡΙΑ: Δεδομένα: Αναπαράσταση της Πραγματικότητας Μπορούν να γίνουν αντιληπτά με μια από τις αισθήσεις μας Πληροφορία: Προκύπτει από

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

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

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

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

Δομημένος Προγραμματισμός (ΤΛ1006)

Δομημένος Προγραμματισμός (ΤΛ1006) Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κρήτης Σχολή Εφαρμοσμένων Επιστημών Τμήμα Ηλεκτρονικών Μηχανικών Τομέας Αυτοματισμού και Πληροφορικής Δομημένος Προγραμματισμός (ΤΛ1006) Δρ. Μηχ. Νικόλαος Πετράκης, Καθηγητής

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

Εισαγωγή στο Bison. Μεταγλωττιστές, Χειμερινό εξάμηνο

Εισαγωγή στο 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 ΜΠΟΜΠΟΤΑΣ ΑΓΟΡΑΚΗΣ Δομές Δεδομένων Standard Template Library (STL) 23/3/2017 ΜΠΟΜΠΟΤΑΣ ΑΓΟΡΑΚΗΣ mpompotas@ceid.upatras.gr Εισαγωγή - STL Η Standard Βιβλιοθήκη προτύπων (STL) είναι μια βιβλιοθήκη λογισμικού για την C++ Δημιουργήθηκε

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

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

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

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

Προγραμματισμός Η/Υ. Ενότητα 8: Ειδικά Θέματα Αλγορίθμων

Προγραμματισμός Η/Υ. Ενότητα 8: Ειδικά Θέματα Αλγορίθμων Προγραμματισμός Η/Υ Ενότητα 8: Ειδικά Θέματα Αλγορίθμων Νίκος Καρακαπιλίδης, Καθηγητής Δημήτρης Σαραβάνος, Καθηγητής Πολυτεχνική Σχολή Τμήμα Μηχανολόγων & Αεροναυπηγών Μηχανικών Σκοποί ενότητας Κατανόηση

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

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

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

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

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

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δομές δεδομένων. Ενότητα 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 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΠΑΡΑΡΤΗΜΑ: QUIZ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ (Οι ερωτήσεις µε κίτρινη υπογράµµιση είναι εκτός ύλης για φέτος) ΕΙΣΑΓΩΓΗ Q1. Οι Πρωταρχικοί τύποι (primitive types) στη Java 1. Είναι όλοι οι ακέραιοι και όλοι οι πραγµατικοί

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

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

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 3. Στοίβες & Ουρές 2 ομές εδομένων 4 5 Χρήστος ουλκερίδης Τμήμα Ψηφιακών Συστημάτων 4/11/2016 Ανακεφαλαίωση:

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

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

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

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

Βασικές δοµές δεδοµένων. Ορολογία λιστών. 8.1 Βασικές έννοιες δοµών δεδοµένων 8.2 Υλοποίηση δοµών δεδοµένων 8.3 Μια σύντοµη υπόθεση εργασίας

Βασικές δοµές δεδοµένων. Ορολογία λιστών. 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 Ταξινόμηση κάδου και ταξινόμηση Ρίζας 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 Δυναμικές Δομές Δεδομένων Διδάσκοντες: Δρ. Γεώργιος Δημητρίου Δρ. Άχμεντ Μάχντι Μεταγλωττιστές Εργαστήριο 2 Δυναμικές Δομές Δεδομένων Διδάσκοντες: Δρ. Γεώργιος Δημητρίου Δρ. Άχμεντ Μάχντι 2015-1016 Δομές Δεδομένων Μια δομή δεδομένων είναι μια συλλογή δεδομένων με κάποιες ιδιότητες

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

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

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

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

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

ΤΕΙ ΙΟΝΙΩΝ ΝΗΣΩΝ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ - ΕΙΣ ΤΕΙ ΙΟΝΙΩΝ ΝΗΣΩΝ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ - ΕΙΣ. ΚΑΤΕΥΘΥΝΣΗ ΔΙΟΙΚΗΣΗΣ ΤΟΥΡΙΣΤΙΚΩΝ ΕΠΙΧΕΙΡΗΣΕΩΝ ΚΑΙ ΕΠΙΧΕΙΡΗΣΕΩΝ ΦΙΛΟΞΕΝΙΑΣ Πληροφορική I "Προγραμματισμός" B. Φερεντίνος

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

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

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

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

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

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

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

Διάλεξη 16: Σωροί. Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Ουρές Προτεραιότητας - Ο ΑΤΔ Σωρός, Υλοποίηση και πράξεις

Διάλεξη 16: Σωροί. Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Ουρές Προτεραιότητας - Ο ΑΤΔ Σωρός, Υλοποίηση και πράξεις ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 1 Διάλεξη 16: Σωροί Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Ουρές Προτεραιότητας - Ο ΑΤΔ Σωρός, Υλοποίηση και πράξεις Ουρά Προτεραιότητας Η δομή

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

Τμήμα Χρηματοοικονομικής & Ελεγκτικής ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας. Πληροφορική Ι. Αναπαράσταση αριθμών στο δυαδικό σύστημα. Δρ.

Τμήμα Χρηματοοικονομικής & Ελεγκτικής ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας. Πληροφορική Ι. Αναπαράσταση αριθμών στο δυαδικό σύστημα. Δρ. Τμήμα Χρηματοοικονομικής & Ελεγκτικής ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας Πληροφορική Ι Αναπαράσταση αριθμών στο δυαδικό σύστημα Δρ. Γκόγκος Χρήστος Δεκαδικό σύστημα αρίθμησης Ελληνικό - Ρωμαϊκό Σύστημα αρίθμησης

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

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ Ενότητα 7: Αφαίρεση δεδόμενων Πασχαλίδης Δημοσθένης Τμήμα Διαχείρισης Εκκλησιαστικών Κειμηλίων Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.

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

Μεταγλωττιστές. Συντακτικός Αναλυτής Κατασκευή Πίνακα Συμβόλων (ΠΣ) Εργαστήριο 7. Διδάσκοντες: Δρ. Γεώργιος Δημητρίου Δρ. Άχμεντ Μάχντι

Μεταγλωττιστές. Συντακτικός Αναλυτής Κατασκευή Πίνακα Συμβόλων (ΠΣ) Εργαστήριο 7. Διδάσκοντες: Δρ. Γεώργιος Δημητρίου Δρ. Άχμεντ Μάχντι Μεταγλωττιστές Εργαστήριο 7 Συντακτικός Αναλυτής Κατασκευή Πίνακα Συμβόλων (ΠΣ) Διδάσκοντες: Δρ. Γεώργιος Δημητρίου Δρ. Άχμεντ Μάχντι 2016-2017 Πίνακας Συμβόλων Συγκεντρώνει πληροφορίες για τα ονόματα

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

ΚΕΦΑΛΑΙΟ 2: Τύποι δεδομένων και εμφάνιση στοιχείων...33

ΚΕΦΑΛΑΙΟ 2: Τύποι δεδομένων και εμφάνιση στοιχείων...33 ΠΕΡΙΕΧΟΜΕΝΑ Πρόλογος του συγγραφέα... 13 Πρόλογος του καθηγητή Τιμολέοντα Σελλή... 15 ΚΕΦΑΛΑΙΟ 1: Εργαλεία γλωσσών προγραμματισμού...17 1.1 Γλώσσες προγραμματισμού τρίτης γεννεάς... 18 τι είναι η γλώσσα

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

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

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

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

HY-252 Αντικειμενοστραφής Προγραμματισμός. Χειμερινό Εξάμηνο 2012 Διδάσκων: Χριστοφίδης Βασίλης. Ημερομηνία Παράδοσης: 16/11/2012

HY-252 Αντικειμενοστραφής Προγραμματισμός. Χειμερινό Εξάμηνο 2012 Διδάσκων: Χριστοφίδης Βασίλης. Ημερομηνία Παράδοσης: 16/11/2012 HY-252 Αντικειμενοστραφής Προγραμματισμός Χειμερινό Εξάμηνο 2012 Διδάσκων: Χριστοφίδης Βασίλης 2 η Σειρά Ασκήσεων Ημερομηνία Παράδοσης: 16/11/2012 Παρακάτω σας δίνονται οι ορισμοί τεσσάρων διαφορετικών

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

ΗΥ240: Δομές Δεδομένων Εαρινό Εξάμηνο Ακαδημαϊκό Έτος 2017 Διδάσκουσα: Παναγιώτα Φατούρου Προγραμματιστική Εργασία - 2o Μέρος

ΗΥ240: Δομές Δεδομένων Εαρινό Εξάμηνο Ακαδημαϊκό Έτος 2017 Διδάσκουσα: Παναγιώτα Φατούρου Προγραμματιστική Εργασία - 2o Μέρος ΗΥ240: Δομές Δεδομένων Εαρινό Εξάμηνο Ακαδημαϊκό Έτος 2017 Διδάσκουσα: Παναγιώτα Φατούρου Προγραμματιστική Εργασία - 2o Μέρος Ημερομηνία Παράδοσης: Δευτέρα, 15 Μαΐου 2017, ώρα 23:59. Τρόπος Παράδοσης:

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

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

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

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

H κλάση ArrayList. Γιώργος Θάνος. Γραφείο Γ. Γκλαβάνη 37. Αντικει ενοστραφής Προγρα. ος όροφος

H κλάση ArrayList. Γιώργος Θάνος. Γραφείο Γ. Γκλαβάνη 37. Αντικει ενοστραφής Προγρα. ος όροφος H κλάση ArrayList Γιώργος Θάνος Γραφείο Γ ος όροφος Γκλαβάνη 37 Εισαγωγικά Η κλάση ArrayList δίνει την δυνατότητα να αποθηκεύσουμε δεδομένα οποιουδήποτε τύπου σε μία δομή δεδομένων η οποία επιτρέπει τα

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

Άσκηση 1 (ανακοινώθηκε στις 20 Μαρτίου 2017, προθεσμία παράδοσης: 24 Απριλίου 2017, 12 τα μεσάνυχτα).

Άσκηση 1 (ανακοινώθηκε στις 20 Μαρτίου 2017, προθεσμία παράδοσης: 24 Απριλίου 2017, 12 τα μεσάνυχτα). Κ08 Δομές Δεδομένων και Τεχνικές Προγραμματισμού Διδάσκων: Μανόλης Κουμπαράκης Εαρινό Εξάμηνο 2016-2017. Άσκηση 1 (ανακοινώθηκε στις 20 Μαρτίου 2017, προθεσμία παράδοσης: 24 Απριλίου 2017, 12 τα μεσάνυχτα).

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

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

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

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