ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ (ΠΑΤΡΑ) ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ
|
|
- Πορφύριος Μελετόπουλος
- 6 χρόνια πριν
- Προβολές:
Transcript
1 ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ (ΠΑΤΡΑ) ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Γιάννης Κουτσονίκος Επίκουρος Καθηγητής
2 Οργάνωση Δεδομένων Δομή Δεδομένων: τεχνική οργάνωσης των δεδομένων με σκοπό την υποστήριξη ενός συνόλου λειτουργιών με τον καλύτερο δυνατό τρόπο. Η επιλογή της δομής δεδομένων και του αλγορίθμου επηρεάζουν το χρόνο εκτέλεσης ενός προγράμματος, ο οποίος μπορεί να κυμαίνεται από λίγα δευτερόλεπτα έως μερικά λεπτά ή ώρες. Μία λύση λέγεται αποδοτική, εάν επιλύει το πρόβλημα εντός των περιορισμών που υπάρχουν ως προς τους πόρους (κυρίως): χρόνος και χώρος. 2
3 Επιλογή Δομής Δεδομένων Επιλέγουμε μία δομή δεδομένων ως εξής: 1. Αναλύουμε το πρόβλημα για να καθορίσουμε τους περιορισμούς πόρων, στους οποίους πρέπει να υπόκειται μια λύση. 2. Καθορίζουμε τις βασικές λειτουργίες που πρέπει να υποστηρίζονται: Όλα τα δεδομένα εισάγονται από την αρχή ή υπάρχουν εισαγωγές που παρεμβάλλονται μεταξύ άλλων λειτουργιών; Μπορούν τα δεδομένα να διαγραφούν; Όλα τα δεδομένα υφίστανται επεξεργασία σε μια καθορισμένη σειρά ή επιτρέπεται τυχαία προσπέλαση; 3. Επιλέγουμε τη δομή (ή τις δομές) δεδομένων που ικανοποιεί (ικανοποιούν) καλύτερα αυτούς τους περιορισμούς. 3
4 Απόδοση Αλγορίθμων - Πολυπλοκότητα Η εκτίμηση της απόδοσης ενός αλγορίθμου στοχεύει: 1. Στην επιλογή του κατάλληλου αλγορίθμου για την επίλυση ενός προβλήματος, 2. Στη σύγκριση διαφορετικών αλγορίθμων, 3. Στον προσδιορισμό αν ένας αλγόριθμος είναι βέλτιστος ή όχι. Για την εκτίμηση της απόδοσης, το κόστος ενός αλγορίθμου υπολογίζεται με βάση π.χ. τον αριθμό συγκρίσεων, αντιμεταθέσεων ή άλλων πράξεων/λειτουργιών και όχι με βάση το χρόνο εκτέλεσης σε κάποιο υπολογιστικό σύστημα. 4
5 Απόδοση Αλγορίθμων - Πολυπλοκότητα Το κόστος μίας μεθόδου εκφράζεται ως συνάρτηση του μεγέθους της εισόδου και μετρά το πλήθος κάποιων βασικών λειτουργιών που εκτελούνται (π.χ. συγκρίσεις μεταξύ στοιχείων, αντιμεταθέσεις, κλπ.). Εστιάζουμε στο κόστος χειρότερης περίπτωσης (αναφέρεται και ως πολυπλοκότητα χειρότερης περίπτωσης). Παράδειγμα: έστω n το πλήθος των στοιχείων ενός μονοδιάστατου πίνακα που αποθηκεύει ακεραίους αριθμούς. Τότε, αν ο πίνακας δεν είναι ταξινομημένος, για να εντοπίσουμε το μέγιστο στοιχείο απαιτούνται στη χειρότερη περίπτωση n-1 συγκρίσεις. 5
6 Συμβολισμός Ο (κεφαλαίο όμικρον) Η συνάρτηση πολυπλοκότητας ενός αλγορίθμου εκφράζεται με τον συμβολισμό O, στον οποίο παραλείπονται οι σταθεροί όροι, καθώς και οι όροι μικρότερου βαθμού. Παραδείγματα Έστω ότι f(n) είναι η συνάρτηση υπολογισμού του πλήθους των πράξεων που εκτελεί κάποιος αλγόριθμος, όπου n τα στοιχεία εισόδου. Εάν f(n) = 3n 2 τότε η f(n) είναι O(n 2 ) Εάν f(n) = 13n τότε η f(n) είναι O(n 2 ) Εάν f(n) = 100n 3 + 3n 2 τότε η f(n) είναι O(n 3 ) 6
7 κόστος (π.χ. πλήθος συγκρίσεων) Πολυπλοκότητες Αλγορίθμων n log(n) n log(n) n*n πλήθος στοιχείων εισόδου 7
8 Πολυπλοκότητα Δυαδικής Αναζήτησης // Επιστροφή της θέσης του στοιχείου με τιμή x // στον ταξινομημένο πίνακα a μεγέθους n. int BinarySearch(int a[], int n, int x) { int left = 0; int right = n-1; // όρια πίνακα while (left <= right) { // σταμάτα όταν τα // όρια αναστραφούν // έλεγχος του μεσαίου στοιχείου int middle = (left + right) / 2; } // αναζήτηση στο δεξιό ή αριστερό μισό, αντίστοιχα if (x == a[middle]) return middle; // βρέθηκε if (x > a[middle]) left = middle + 1; else right = middle - 1; } return -1; // δεν βρέθηκε 8
9 Πολυπλοκότητα Δυαδικής Αναζήτησης Αναζήτηση του στοιχείου 45 Πόσα στοιχεία εξετάζουμε στη χειρότερη περίπτωση; Ισοδύναμο ερώτημα: Πόσες φορές μπορούμε να διαιρούμε στη μέση έναν πίνακα με n στοιχεία, έτσι ώστε ο τελικός πίνακας να έχει ένα μόνο κελί; 9
10 Πολυπλοκότητα Δυαδικής Αναζήτησης Έστω t το πλήθος των διαιρέσεων και χωρίς βλάβη της γενικότητας έστω ότι το πλήθος n των στοιχείων είναι δύναμη του 2. Μετά από κάθε διαίρεση το πλήθος των στοιχείων μειώνεται στο μισό, συνεπώς το πλήθος των στοιχείων θα είναι ίσο με 1, μετά από t διαιρέσεις όπου: n(1/2) t =1 => 2 t =n => t=log 2 n. Για το συγκεκριμένο παράδειγμα n=16 συνεπώς t=4. 10
11 Τύποι Δεδομένων Ατομικοί - με απλές τιμές (ακέραιοι, πραγματικοί, λογικοί, χαρακτήρες). Κάθε ατομικός τύπος ορίζεται από το όνομά του (π.χ. integer), το πεδίο τιμών του (π.χ έως 32767) και τις επιτρεπόμενες πράξεις (π.χ. πρόσθεση, αφαίρεση, κλπ.). Δομημένοι - με σύνθετες τιμές (πίνακες, εγγραφές, λίστες, δένδρα). Αποτελούνται από επιμέρους τιμές (στοιχεία, πεδία, κόμβοι) και διαθέτουν ένα οργανωτικό σχήμα. Οι συνηθέστερες πράξεις - λειτουργίες σε δομές δεδομένων είναι: η διαπέραση (προσπέλαση και επεξεργασία στοιχείου/κόμβου), η αναζήτηση (εύρεση στοιχείου/κόμβου με κάποια τιμή), η εισαγωγή (πρόσθεση ενός νέου στοιχείου/κόμβου), η διαγραφή (αφαίρεση υπάρχοντος στοιχείου/κόμβου) και η ταξινόμηση (διάταξη στοιχείου/κόμβου με κάποια σειρά). 11
12 Πίνακες Μία ή περισσότερες διαστάσεις Κάθε διάσταση έχει όρια (π.χ. 0 έως 9). Κάθε στοιχείο χαρακτηρίζεται από τη θέση του στον πίνακα, που αποτελείται από τόσες τιμές όσες και οι διαστάσεις. Ομοειδή στοιχεία Όλα συγκεκριμένου τύπου (ακέραιοι, εγγραφές, κλπ.). Στατική δομή Πρέπει να δηλωθεί εξ αρχής το μέγεθος του πίνακα. Γραμμική δομή Υπάρχει «λογική» διάταξη των στοιχείων, δηλαδή κάθε στοιχείο έχει ένα επόμενο (πλην του τελευταίου) και ένα προηγούμενο (πλην του πρώτου). Αποθήκευση στοιχείων σε συνεχόμενες θέσεις Τυχαία προσπέλαση (χρόνος ανεξάρτητος της θέσης). Είναι οι βασικότερες δομές όπου στηρίζονται πιο πολύπλοκοι αλγόριθμοι και δομές δεδομένων. 12
13 Πίνακες Βασικό χαρακτηριστικό των πινάκων: Τα στοιχεία είναι αποθηκευμένα στη μνήμη σε συνεχόμενες θέσεις, με αποτέλεσμα να μπορούμε να υποστηρίξουμε τυχαία προσπέλαση σε οποιοδήποτε στοιχείο του πίνακα. Συνάρτηση Απεικόνισης Πίνακα (ΣΑΠ): μας δίνει τη θέση ενός στοιχείου του πίνακα στη μνήμη, με βάση τη θέση του, τον τύπο των στοιχείων του πίνακα και τη διεύθυνση του πρώτου στοιχείου. Αν η διεύθυνση του πρώτου στοιχείου είναι η L 0 και κάθε στοιχείο καταλαμβάνει (βάσει του τύπου των στοιχείων) c bytes, τότε: Θέση του στοιχείου a[i] σε μονοδιάστατο πίνακα a, N στοιχείων: L i = L 0 + i*c (στη γλώσσα C, το πρώτο στοιχείο είναι στη θέση 0) Θέση του στοιχείου b[i][j] σε δισδιάστατο πίνακα b, M x N στοιχείων που είναι αποθηκευμένα κατά γραμμές: L ij = L 0 + i*n*c + j*c (στη γλώσσα C, το πρώτο στοιχείο είναι στη θέση 0,0) 13
14 πίνακας μίας διάστασης με ακεραίους Πίνακες πίνακας μίας διάστασης με εγγραφές 1 Mary 25 2 John 21 3 Kate 30 4 Bill 44 5 Jack 31 6 Jason 50 πίνακας δύο διαστάσεων (3 x 5) με ακεραίους
15 Συνδεδεμένες Λίστες Ομοειδή στοιχεία Αποτελούνται από 2 μέρη: πληροφορία και δείκτη. Η πληροφορία μπορεί να είναι ατομική ή ομαδική (εγγραφή). Δυναμική δομή Μπορούμε να προσθαφαιρούμε στοιχεία χωρίς πρόβλημα. Γραμμική δομή Υπάρχει «λογική» διάταξη των στοιχείων, δηλαδή κάθε στοιχείο έχει ένα επόμενο (πλην του τελευταίου) και ένα προηγούμενο (πλην του πρώτου). Αποθήκευση στοιχείων σε διάσπαρτες θέσεις Σειριακή προσπέλαση (ξεκινάμε πάντα από την αρχή και μετακινούμαστε μέσω των δεικτών στον επόμενο κόμβο). Διαγραφή στοιχείου με αλλαγή τιμής ενός δείκτη 15
16 Συνδεδεμένη λίστα με ακεραίους Συνδεδεμένες Λίστες first Κάθε κόμβος έχει ένα δείκτη next στον επόμενο κόμβο last Διπλά συνδεδεμένη λίστα με εγγραφές (σε αύξουσα σειρά ονομάτων) 1 Bill 25 2 Jack 21 3 Jason 30 4 John 44 5 Kate 31 6 Mary 50 first Κάθε κόμβος έχει ένα δείκτη next στον επόμενο κόμβο και ένα δείκτη previous στον προηγούμενο κόμβο last 16
17 Συνδεδεμένες Λίστες Παράδειγμα εισαγωγής στοιχείου (σε αύξουσα σειρά ονομάτων, αρχικά γνωστά x και z) 1 Bill 25 2 Jack 21 3 Jason 30 4 John 44 5 Kate 31 6 Mary 50 x y first 10 Jim 30 z last y = x->next x -> next = z z -> previous = x y -> previous = z z -> next = y 17
18 Στοίβα Λογική LIFO (Last-In First-Out). Υποστηρίζονται δύο βασικές λειτουργίες: εισαγωγή (push) εξαγωγή (pop) Υλοποιείται συνήθως με πίνακα (όπου η κεφαλή T αυξομειώνεται κατά 1 σε κάθε εισαγωγή ή διαγραφή), αλλά και με συνδεδεμένη λίστα. Χρησιμοποιείται όταν θέλουμε να επεξεργαστούμε κάποια στοιχεία με αντίστροφη σειρά από αυτή που τα εισάγουμε (π.χ. στη μετατροπή δεκαδικού σε δυαδικό, όπου κάνουμε διαιρέσεις και παίρνουμε τα υπόλοιπα από το τέλος προς την αρχή). 18
19 Στοίβα Παράδειγμα push(5) push(10) push(7) pop() pop() 19
20 Βασικές Εφαρμογές Στοίβας κλήση υποπρογραμμάτων αναπαράσταση και εκτίμηση αριθμητικών εκφράσεων οπισθοδρόμηση (backtracking) 20
21 Ουρά Λογική FIFO (First-In First-Out) Υποστηρίζονται δύο βασικές λειτουργίες: εισαγωγή στο τέλος (insert) διαγραφή από την αρχή (delete). Υλοποιείται συνήθως με πίνακα, όπου υπάρχει μετρητής - δείκτης της θέσης εξαγωγής (first ή front) και μετρητής - δείκτης της θέσης εισαγωγής (last ή rear), αλλά και με συνδεδεμένη λίστα σε περίπτωση που δεν θέλουμε να περιορίσουμε το πλήθος των στοιχείων που θα εισαχθούν στη δομή. 21
22 Βασικές Εφαρμογές Oυράς διαχείριση πόρων σε λειτουργικά συστήματα και δίκτυα επεξεργασία αιτήσεων πελατών, εργασιών, και παραγγελιών σε εμπορικές εφαρμογές προσομοίωση συστημάτων 22
23 Δένδρα Αποτελούνται από κόμβους και ακμές που τους συνδέουν. Κάθε κόμβος έχει παιδιά (πλην των φύλλων) και ένα μόνο γονέα (πλην της ρίζας). Ορολογία Διαδρομή (path) από ένα κόμβο Ν x σε ένα άλλο κόμβο Ν y είναι μια ακολουθία κόμβων όπου πρώτος είναι ο Ν x, τελευταίος ο Ν y και κάθε άλλος κόμβος είναι παιδί του προηγουμένου. Μήκος (length) μιας διαδρομής είναι ο αριθμός των ακμών που περιλαμβάνονται σ αυτήν. Επίπεδο (level) ή βάθος (depth) ενός κόμβου είναι το μήκος της μοναδικής διαδρομής από τη ρίζα στον κόμβο αυτό. Ύψος (height) ενός δένδρου είναι το μέγιστο βάθος των (τερματικών) κόμβων του. Βαθμός (degree) ενός κόμβου είναι ο αριθμός των παιδιών του. Βαθμός ενός δένδρου είναι ο μέγιστος των βαθμών των κόμβων του. 23
24 Δυαδικά Δένδρα Δυαδικά δένδρα: έχουν βαθμό 2. Σε κάθε κόμβο: Αριστερό υποδένδρο - δεξιό υποδένδρο Πλήρες δυαδικό δένδρο: έχει το μέγιστο αριθμό κόμβων σε κάθε επίπεδο πλην ίσως του τελευταίου (αν στο τελευταίο δεν έχει το μέγιστο αριθμό κόμβων, οι κόμβοι πρέπει να είναι όσο το δυνατό αριστερά). Αναπαράσταση Συνεχόμενη αναπαράσταση (με πίνακα) Η ρίζα μπαίνει στη θέση 0. Αν ένας κόμβος είναι στη θέση k, το αριστερό παιδί του θα είναι στη θέση 2*k+1 και το δεξιό παιδί του θα είναι στη θέση 2*k+2. Συνδεδεμένη αναπαράσταση (η πιο συνήθης μορφή) Χρήση 2 δεικτών (left, right) 24
25 Δυαδικά Δένδρα Δομή ενός κόμβου σε συνδεδεμένη αναπαράσταση Δεδομένα Left Right Ρίζα αριστερού υποδένδρου Ρίζα δεξιού υποδένδρου αριστερό υποδένδρο Δεξιό υποδένδρο 25
26 Διαπεράσεις Δυαδικών Δένδρων Κάθε διαδικασία επίσκεψης όλων των κόμβων ενός δένδρου, ακριβώς μία φορά τον καθένα, λέγεται διαπέραση ή διάσχιση (traversal). Προδιατεταγμένη διαπέραση (pre-order): Για κάθε κόμβο, επισκεπτόμαστε πρώτα τον ίδιο τον κόμβο, έπειτα τους κόμβους του αριστερού του υποδένδρου και στη συνέχεια τους κόμβους του δεξιού του υποδένδρου. Μεταδιατεταγμένη διαπέραση (post-order): Για κάθε κόμβο, επισκεπτόμαστε πρώτα τους κόμβους του αριστερού του υποδένδρου, έπειτα τους κόμβους του δεξιού του υποδένδρου και στη συνέχεια τον ίδιο τον κόμβο. Ενδοδιατεταγμένη διαπέραση (in-order): Για κάθε κόμβο, επισκεπτόμαστε πρώτα τους κόμβους του αριστερού του υποδένδρου, έπειτα τον ίδιο τον κόμβο και στη συνέχεια τους κόμβους του δεξιού του υποδένδρου. 26
27 Διαπεράσεις Δυαδικών Δένδρων Προδιατεταγμένη (ΡΑΔ): x, b, w, c, e, g, f, h, z Μεταδιατεταγμένη (ΑΔΡ): w, b, g, e, h, z, f, c, x Ενδοδιατεταγμένη (ΑΡΔ): b, w, x, g, e, c, h, f, z b x c w e f g h z 27
28 Ειδικά Δυαδικά Δένδρα Δυαδικά Δένδρα Αναζήτησης Το αριστερό υποδένδρο κάθε κόμβου έχει τιμές μικρότερες από την τιμή του κόμβου. Το δεξιό υποδένδρο κάθε κόμβου έχει τιμές μεγαλύτερες από την τιμή του κόμβου. Χρησιμοποιούνται στην αναζήτηση στοιχείων, όπου ενδέχεται να βελτιώσουν σημαντικά το χρόνο (αντίστοιχα με τη δυαδική αναζήτηση σε ταξινομημένο πίνακα). Η δυαδική αναζήτηση σε ταξινομημένο πίνακα παίρνει Ο(log n) χρόνο και αυτό επιτυγχάνεται και στα ισοζυγισμένα δυαδικά δένδρα αναζήτησης. Με ενδοδιατεταγμένη διαπέραση παίρνουμε τα στοιχεία ταξινομημένα κατά αύξουσα σειρά. Δένδρα - Σωροί Πλήρη δυαδικά δένδρα. Στο σωρό ελαχίστων, η τιμή κάθε κόμβου είναι μικρότερη από τις τιμές των παιδιών του. Στο σωρό μεγίστων, η τιμή κάθε κόμβου είναι μεγαλύτερη από τις τιμές των παιδιών του. 28
29 εισαγωγή στοιχείων: 8, 4, 12, 2, 6, 14, 18, 13 Δυαδικά Δένδρα Αναζήτησης
30 Παράδειγμα Αναζήτησης Αναζήτηση του στοιχείου Δεν βρέθηκε
31 Δυαδικά Δένδρα Αναζήτησης Άσκηση: αναζητήστε ένα προς ένα όλα τα στοιχεία του δένδρου. Καταγράψτε το πλήθος των απαιτούμενων συγκρίσεων μεταξύ στοιχείων. στοιχείο συγκρίσεις
32 Δυαδικά Δένδρα Αναζήτησης Διαγραφές 1. Ο κόμβος που διαγράφεται δεν έχει υποδένδρα. 2. Ο κόμβος που διαγράφεται έχει μόνο ένα υποδένδρο. 3. Ο κόμβος που διαγράφεται έχει δύο υποδένδρα. 32
33 Δυαδικά Δένδρα Αναζήτησης Διαγραφές Οι πρώτες δύο περιπτώσεις είναι πιο εύκολες. Έστω ότι διαγράφουμε έναν κόμβο t που δεν έχει υποδένδρα (παιδιά). Τότε απλά διαγράφουμε τον κόμβο και θέτουμε το δείκτη του γονιού σε NULL. Αν ο κόμβος που διαγράφεται έχει μόνο ένα υποδένδρο (παιδί), τότε μετά τη διαγραφή του κόμβου t, τη θέση του παίρνει η ρίζα του υποδένδρου (παιδιού) του t και ενημερώνεται κατάλληλα ο δείκτης του γονιού του t. 33
34 Δυαδικά Δένδρα Αναζήτησης Διαγραφή του 18: ο κόμβος που περιέχει το 18 δεν έχει υποδένδρα
35 Δυαδικά Δένδρα Αναζήτησης Διαγραφή του 12: ο κόμβος που περιέχει το 12 έχει μόνο δεξιό υποδένδρο
36 Δυαδικά Δένδρα Αναζήτησης Διαγραφή κόμβου που έχει δύο υποδένδρα. Τη θέση του στοιχείου που διαγράφεται θα πάρει είτε το μεγαλύτερο στοιχείο του αριστερού υποδένδρου είτε το μικρότερο στοιχείο του δεξιού υποδένδρου. x 36
37 Δυαδικά Δένδρα Αναζήτησης Διαγραφή του 8 Αντικατάσταση με το μεγαλύτερο του αριστερού υποδένδρου
38 Δυαδικά Δένδρα Αναζήτησης Διαγραφή του 8 Αντικατάσταση με το μικρότερο του δεξιού υποδένδρου
39 Δένδρο - Σωρός Είναι ένα πλήρες δυαδικό δένδρο που υποστηρίζει τις εξής βασικές λειτουργίες: Εύρεση ελαχίστου (ή μεγίστου) σε σταθερό χρόνο. Εισαγωγή στοιχείου σε χρόνο O(logn), όπου n το πλήθος των στοιχείων του σωρού. Διαγραφή ελαχίστου (ή μεγίστου) σε χρόνο O(logn). Να συγκρίνετε τους χρόνους αυτούς με τους αντίστοιχους του ταξινομημένου πίνακα. 39
40 Δένδρο - Σωρός Σωρός ελαχίστων (minheap) Το δένδρο-σωρός αναπτύσσεται από επάνω προς τα κάτω και από αριστερά προς τα δεξιά. Μόνο το τελευταίο επίπεδο μπορεί να μην είναι πλήρως συμπληρωμένο Το στοιχείο ενός κόμβου είναι μικρότερο από τα στοιχεία των παιδιών του Το ελάχιστο στοιχείο βρίσκεται πάντα στη ρίζα του δένδρου. 40
41 Δένδρο - Σωρός Διαδικασία εισαγωγής Το νέο στοιχείο τοποθετείται σε ένα νέο κόμβο στο τέλος του σωρού. Στη συνέχεια, λαμβάνουν χώρα αντιμεταθέσεις ώστε το νέο στοιχείο να τοποθετηθεί τελικά στο σωστό επίπεδο. Το νέο στοιχείο μπορεί να φτάσει μέχρι τη ρίζα του σωρού. 41
42 Δένδρο - Σωρός Παράδειγμα: εισαγωγή του
43 Δένδρο - Σωρός Διαδικασία διαγραφής ελαχίστου Παίρνουμε το τελευταίο στοιχείο του σωρού και το τοποθετούμε στη ρίζα. Στη συνέχεια, λαμβάνουν χώρα αντιμεταθέσεις ώστε το στοιχείο που μπήκε στη ρίζα να τοποθετηθεί τελικά στο σωστό επίπεδο. Το στοιχείο που τοποθετήθηκε στη ρίζα μπορεί να φτάσει μέχρι το τελευταίο επίπεδο του σωρού. Το μέγεθος (=πλήθος στοιχείων) του σωρού μειώνεται κατά ένα. 43
44 Δένδρο - Σωρός Παράδειγμα: διαγραφής ελαχίστου
45 Αποθήκευση σωρού σε πίνακα Δένδρο - Σωρός Τα παιδιά του κόμβου που βρίσκεται στη θέση i του πίνακα βρίσκονται στις θέσεις 2i+1 και 2i+2. Ο γονέας του κόμβου που βρίσκεται στη θέση i του πίνακα βρίσκεται στη θέση (i-1)/2 45
46 Δένδρο - Σωρός Σωρός μεγίστων (maxheap) Το δένδρο-σωρός αναπτύσσεται από επάνω προς τα κάτω και από αριστερά προς τα δεξιά. Μόνο το τελευταίο επίπεδο μπορεί να μην είναι πλήρως συμπληρωμένο Το στοιχείο ενός κόμβου είναι μεγαλύτερο από τα στοιχεία των παιδιών του Το μέγιστο στοιχείο βρίσκεται πάντα στη ρίζα του δένδρου. 7 46
47 Άσκηση για δένδρο-σωρό Δίνεται η εξής δενδρική δομή: Αποτελεί η δομή αυτή δένδρο-σωρό; Αιτιολογήστε την απάντησή σας. 2. Θεωρήστε ότι το δένδρο σαρώνεται με την ενδοδιατεταγμένη διαπέραση και τα δεδομένα των κόμβων του εισάγονται, με διαδοχικές λειτουργίες push, σε μια στοίβα. Στη συνέχεια, τα δεδομένα εξάγονται από τη στοίβα με διαδοχικές λειτουργίες pop και εισάγονται σε μια νέα δομή δένδρου σωρού. Να δείξετε το νέο δένδρο σωρό μετά από την εισαγωγή των στοιχείων 15, 76, 19, 14, Να γίνει διαγραφή της ρίζας στο τελικό δένδρο-σωρό που προκύπτει μετά την εισαγωγή όλων των δεδομένων του ερωτήματος 2. Απεικονίστε το τελικό δένδρο που προκύπτει μετά τις αλλαγές που συντελούνται λόγω της διαγραφής. 47
48 Απάντηση 1. Όχι, το δένδρο αυτό δεν αποτελεί δομή σωρού γιατί ενώ είναι πλήρες δυαδικό δένδρο, οι κόμβοι γονείς με τις τιμές 14, 49, 12, 38 είναι μικρότεροι από τους κόμβους παιδιά δηλαδή (14<49, 14<21), (49<74, 49<62), (12<19, 12<31) και (38<48). 2. Τα δεδομένα που προκύπτουν κατά την εφαρμογή της ενδοδιατεταγμένης διαπέρασης στο δεδομένο δένδρο είναι τα εξής (με αυτή τη σειρά): 74,49,62,14,21,22,19,12,31,76,10,17,15,64,48,38,3. Συνεπώς, η στοίβα έχει την μορφή του διπλανού σχήματος:
49 64 Εισαγωγή Εισαγωγή
50 Εισαγωγή
51 Εισαγωγή
52 Εισαγωγή
53 Διαγραφή της ρίζας:
54 Βασικές Εφαρμογές Δένδρων αναζήτηση σε διατεταγμένες λίστες και διάταξη αλγόριθμοι συμπίεσης δεδομένων αναπαράσταση και εκτίμηση αριθμητικών εκφράσεων αναπαράσταση οντολογιών αποθήκευση και δεικτοδότηση συμβολοσειρών 54
55 Διάταξη ή Ταξινόμηση Αποτελεί βασική λειτουργία στα συστήματα επεξεργασίας δεδομένων. Είσοδος: σύνολο στοιχείων που βρίσκονται σε έναν πίνακα. Έξοδος: ταξινομημένος πίνακας σε αύξουσα ή φθίνουσα διάταξη. Επειδή η ταξινόμηση χρησιμοποιείται συχνά για την επίλυση δυσκολότερων προβλημάτων θα πρέπει να εκτελείται γρήγορα. 55
56 Διάταξη Γνωστότεροι αλγόριθμοι διάταξης: με επιλογή (selection sort) με εισαγωγή (insertion sort) με ανταλλαγή ή φυσαλίδας (exchange sort ή bubble sort) με συγχώνευση (mergesort) με χρήση σωρού (heapsort) γρήγορη ταξινόμηση (quicksort) 56
57 Διάταξη με Επιλογή Από τις πλέον κατανοητές «διαισθητικά». Διαίρεσε τον πίνακα σε έναν ταξινομημένο υποπίνακα και σε έναν μη-ταξινομημένο. Για αύξουσα ταξινόμηση, σε κάθε πέρασμα, το μικρότερο στοιχείο του μη-ταξινομημένου υποπίνακα τοποθετείται στην αρχή του. Για φθίνουσα ταξινόμηση, σε κάθε πέρασμα, το μεγαλύτερο στοιχείο του μη-ταξινομημένου υποπίνακα τοποθετείται στην αρχή του. 57
58 Διάταξη με Επιλογή Σε κάθε πέρασμα, Βρες το μικρότερο στοιχείο στη μη ταξινομημένη λίστα Αντάλλαξε το επιλεγμένο στοιχείο με το στοιχείο στην αρχή της μη-ταξινομημένης λίστας Σημείωση: εναλλακτικά ο αλγόριθμος βρίσκει κάθε φορά το μεγαλύτερο στοιχείο και το τοποθετεί στο τέλος. 58
59 Αλγόριθμος Διάταξης με Επιλογή Το μικρότερο στοιχείο τοποθετείται στην αρχή. for (i=0; i<n-1; ++i) { min = A[i]; pos = i; for (k=i+1; k<n; ++k) if (A[k] < min) { min = A[k]; pos = k; } A[pos] = A[i]; A[i] = min; } 59
60 Διάταξη με Επιλογή Βρες το ελάχιστο Τοποθέτησε το ελάχιστο στην αρχή Βρες το ελάχιστο Τοποθέτησε το ελάχιστο στην αρχή Βρες το ελάχιστο Τοποθέτησε το ελάχιστο στην αρχή ταξ. υποπίνακας μη ταξ. υποπίνακας Σχολιάστε για το πλήθος συγκρίσεων που απαιτούνται 60
61 Διάταξη Φυσαλίδας Αλγόριθμος αύξουσας διάταξης Έστω ο πίνακας A με n στοιχεία. Σε κάθε πέρασμα, συγκρίνονται δύο γειτονικά στοιχεία, έστω στις θέσεις i και i+1. Εάν Α[i] > A[i+1], τότε αντιμεταθέτουμε τα δύο στοιχεία. Στο i-οστό πέρασμα (i=1,2,,n-1), βρίσκεται το i-οστό μικρότερο στοιχείο και τοποθετείται στην i-οστή θέση του πίνακα. 61
62 Αλγόριθμος Διάταξης Φυσαλίδας Το μικρότερο στοιχείο τοποθετείται στην αρχή. for (i=1; i<n; ++i) for (k=n-1; k>=i; --k) if (A[k] < A[k-1]) { temp = A[k-1]; A[k-1] = A[k]; A[k] = temp; } 62
63 Το μικρότερο στοιχείο τοποθετείται στην αρχή. Πρώτο πέρασμα: το στοιχείο 1 τοποθετείται στην αρχή του πίνακα. Ερώτηση: Πόσες συγκρίσεις/αντιμεταθέσεις πραγματοποιούνται στη χειρότερη περίπτωση στο πρώτο πέρασμα; Πόσες στο δεύτερο; Πόσες συνολικά συγκρίσεις θα εκτελεστούν σε σχέση με το μέγεθος (n) του πίνακα; Διάταξη Φυσαλίδας
64 Γρήγορη Διάταξη Η «γρήγορη» διάταξη βασίζεται στην αρχή του «Διαίρει και Βασίλευε». Στον προγραμματισμό της χρησιμοποιούμε την τεχνική της «αναδρομής». Είναι αισθητά πιο αποδοτική από τις προηγούμενες δύο. 64
65 Γρήγορη Διάταξη Διαίρει: διάλεξε ένα στοιχείο «άξονα» του πίνακα. Με βάση αυτό, χώρισε τον πίνακα στα δύο: στον αριστερό υποπίνακα βάλε όλα τα μικρότερα στοιχεία και στο δεξιό όλα τα μεγαλύτερα από το στοιχείο-άξονα Αναδρομή: Αναδρομικά κάνε το ίδιο στους δύο υποπίνακες. Βασίλευε: Βάλε στη σειρά τον αριστερό υποπίνακα, το στοιχείο-άξονα και τέλος τον δεξιό υποπίνακα. Σημείωση: στην απλή εκδοχή της quicksort ως στοιχείο-άξονας επιλέγεται συνήθως το πρώτο στοιχείο του κάθε υποπίνακα. 65
66 Γρήγορη Διάταξη 1) Επιλογή: Διάλεξε το στοιχείο-άξονα 2) Διαίρει: Βάλτο σε θέση ώστε αριστερά να είναι τα μικρότερα και δεξιά τα μεγαλύτερα 3) Βασίλευε: ταξινόμησε αναδρομικά 66
67 Γρήγορη Διάταξη Ο αλγόριθμος διαχωρισμού του πίνακα σε μεγαλύτερα και σε μικρότερα στοιχεία είναι ο εξής: Διαπερνάμε τον πίνακα ταυτόχρονα από τα δύο άκρα προς το κέντρο του με τη βοήθεια δύο δεικτών. Ο αριστερός δείκτης σταματά όταν συναντήσει στοιχείο μεγαλύτερο από το στοιχείο-άξονα, ενώ ο δεξιός όταν συναντήσει στοιχείο μικρότερο ή ίσο από αυτό. Όταν σταματήσουν και οι δύο, γίνεται εναλλαγή των στοιχείων που σταμάτησαν και κατόπιν η διαπέραση συνεχίζεται. Τα (2) και (3) επαναλαμβάνονται μέχρις ότου οι δείκτες διασταυρωθούν, οπότε σταματά η διαπέραση και γίνεται εναλλαγή του στοιχείου-άξονα με το στοιχείο που δείχνει ο δεξιός δείκτης. 67
Αλγόριθμοι και Δομές Δεδομένων (Ι) (εισαγωγικές έννοιες)
Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2015-16 Αλγόριθμοι και Δομές Δεδομένων (Ι) (εισαγωγικές έννοιες) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Τι είναι
Τι είναι αλγόριθμος; Υποπρογράμματα (υποαλγόριθμοι) Βασικές αλγοριθμικές δομές
Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2015-16 Αλγόριθμοι και Δομές Δεδομένων (Ι) (εισαγωγικές έννοιες) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Τι είναι
Δομές Δεδομένων & Αλγόριθμοι
Δομές Δεδομένων & Αναζήτηση & Ταξινόμηση 1 Αναζήτηση Έχω έναν πίνακα Α με Ν στοιχεία. Πρόβλημα: Βρες αν το στοιχείο x ανήκει στον πίνακα Αν ο πίνακας είναι αταξινόμητος τότε μόνη λύση σειριακή αναζήτηση
ΑΛΓΟΡΙΘΜΟΙ ΜΕ C. ΝΙΚΟΛΑΟΣ ΣΑΜΑΡΑΣ Αναπληρωτής Καθηγητής. CMOR Lab. Computational Methodologies and Operations Research
ΑΛΓΟΡΙΘΜΟΙ ΜΕ C ΝΙΚΟΛΑΟΣ ΣΑΜΑΡΑΣ Αναπληρωτής Καθηγητής CMOR Lab Computational Methodologies and Operations Research Δέντρα (5) Τ ένα δέντρο i ένας κόμβος στο επίπεδο k j ένας κόμβος στο επίπεδο k+1 } :
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ
1 ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΚΕΦΑΛΑΙΟ 3ο: ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ ΜΕΡΟΣ 2 ο : ΣΤΟΙΒΑ & ΟΥΡΑ ΙΣΤΟΣΕΛΙΔΑ ΜΑΘΗΜΑΤΟΣ: http://eclass.sch.gr/courses/el594100/ ΣΤΟΙΒΑ 2 Μια στοίβα
ΑΛΓΟΡΙΘΜΟΙ ΜΕ C. ΝΙΚΟΛΑΟΣ ΣΑΜΑΡΑΣ Αναπληρωτής Καθηγητής. CMOR Lab. Computational Methodologies and Operations Research
ΑΛΓΟΡΙΘΜΟΙ ΜΕ C ΝΙΚΟΛΑΟΣ ΣΑΜΑΡΑΣ Αναπληρωτής Καθηγητής CMOR Lab Computational Methodologies and Operations Research Quiz-[9] Συν (+) και Πλην (-) Έστω n συνεχόμενοι θετικοί ακέραιοι από το 1 μέχρι το n.
Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο Κάθε δομή μπορεί να χρησιμοποιηθεί σε οποιοδήποτε πρόβλημα ή εφαρμογή
Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 3 1. Κάθε δομή μπορεί να χρησιμοποιηθεί σε οποιοδήποτε πρόβλημα ή εφαρμογή 2. Δυναμικές είναι οι δομές που αποθηκεύονται σε συνεχόμενες θέσεις μνήμης 3. Ένας πίνακας
Δομές Δεδομένων Ενότητα 2
ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Ενότητα 2: Θέματα Απόδοσης Απόστολος Παπαδόπουλος Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.
Ενότητα 3: ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ
Ενότητα 3: ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ ΔΕΔΟΜΕΝΑ ΑΛΓΟΡΙΘΜΟΙ -ΠΛΗΡΟΦΟΡΙΑ: Δεδομένα: Αναπαράσταση της Πραγματικότητας Μπορούν να γίνουν αντιληπτά με μια από τις αισθήσεις μας Πληροφορία: Προκύπτει από
Δομές Δεδομένων (Εργ.) Ακ. Έτος Διδάσκων: Ευάγγελος Σπύρου. Εργαστήριο 10 Δυαδικά Δένδρα Αναζήτησης
ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ Δομές Δεδομένων (Εργ.) Ακ. Έτος 2017-18 Διδάσκων: Ευάγγελος Σπύρου Εργαστήριο 10 Δυαδικά Δένδρα Αναζήτησης 1. Στόχος του εργαστηρίου Στόχος του δέκατου εργαστηρίου
Ταξινόμηση. Σαλτογιάννη Αθανασία
Ταξινόμηση Σαλτογιάννη Αθανασία Ταξινόμηση Ταξινόμηση Τι εννοούμε όταν λέμε ταξινόμηση; Ταξινόμηση Τι εννοούμε όταν λέμε ταξινόμηση; Ποια είδη αλγορίθμων ταξινόμησης υπάρχουν; Ταξινόμηση Τι εννοούμε όταν
5. Απλή Ταξινόμηση. ομές εδομένων. Χρήστος ουλκερίδης. Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων
Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 5. Απλή Ταξινόμηση 2 ομές εδομένων 4 5 Χρήστος ουλκερίδης Τμήμα Ψηφιακών Συστημάτων 11/11/2016 Εισαγωγή Η
Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων
Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 6. Δυαδικά Δέντρα 2 ομές εδομένων 4 5 Χρήστος ουλκερίδης Τμήμα Ψηφιακών Συστημάτων 18/11/2016 Εισαγωγή Τα
Ουρές Προτεραιότητας: Υπενθύμιση. Σωροί / Αναδρομή / Ταξινόμηση. Υλοποίηση Σωρού. Σωρός (Εισαγωγή) Ορέστης Τελέλης
Ουρές Προτεραιότητας: Υπενθύμιση Σωροί / Αναδρομή / Ταξινόμηση Ορέστης Τελέλης telelis@unipi.gr Τμήμα Ψηφιακών Συστημάτων, Πανεπιστήμιο Πειραιώς (Abstract Data Type) με μεθόδους: Μπορεί να υλοποιηθεί με
Διάλεξη 09: Αλγόριθμοι Ταξινόμησης I
Διάλεξη 09: Αλγόριθμοι Ταξινόμησης I Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Οι αλγόριθμοι ταξινόμησης: Α. SelectionSort Ταξινόμηση με Επιλογή Β. InsertionSort Ταξινόμηση με Εισαγωγή
ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Δοµές Δεδοµένων
ΟΝΟΜΑΤΕΠΩΝΥΜΟ: ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ AM: Δοµές Δεδοµένων Εξεταστική Ιανουαρίου 2014 Διδάσκων : Ευάγγελος Μαρκάκης 20.01.2014 ΥΠΟΓΡΑΦΗ ΕΠΟΠΤΗ: Διάρκεια εξέτασης : 2 ώρες και
Αλγόριθμοι και Δομές Δεδομένων (IΙ) (γράφοι και δένδρα)
Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2016-17 Αλγόριθμοι και Δομές Δεδομένων (IΙ) (γράφοι και δένδρα) http://mixstef.github.io/courses/csintro/ Μ.Στεφανιδάκης Αφηρημένες
Οι βασικές λειτουργίες (ή πράξεις) που γίνονται σε μια δομή δεδομένων είναι:
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Μια δομή δεδομένων στην πληροφορική, συχνά αναπαριστά οντότητες του φυσικού κόσμου στον υπολογιστή. Για την αναπαράσταση αυτή, δημιουργούμε πρώτα ένα αφηρημένο μοντέλο στο οποίο προσδιορίζονται
Διάλεξη 16: Σωροί. Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Ουρές Προτεραιότητας - Ο ΑΤΔ Σωρός, Υλοποίηση και πράξεις
ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 1 Διάλεξη 16: Σωροί Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Ουρές Προτεραιότητας - Ο ΑΤΔ Σωρός, Υλοποίηση και πράξεις Ουρά Προτεραιότητας Η δομή
Δομές Δεδομένων και Αλγόριθμοι
Δομές Δεδομένων και Αλγόριθμοι Χρήστος Γκόγκος ΤΕΙ Ηπείρου Χειμερινό Εξάμηνο 2014-2015 Παρουσίαση 17 Σωροί (Heaps) έκδοση 10 1 / 19 Heap Σωρός Ο σωρός είναι μια μερικά ταξινομημένη δομή δεδομένων που υποστηρίζει
Αλγόριθμοι Ταξινόμησης Μέρος 2
Αλγόριθμοι Ταξινόμησης Μέρος 2 Μανόλης Κουμπαράκης 1 Προχωρημένοι Αλγόριθμοι Ταξινόμησης Στη συνέχεια θα παρουσιάσουμε τρείς προχωρημένους αλγόριθμους ταξινόμησης: treesort, quicksort και mergesort. 2
Δομές Δεδομένων & Αλγόριθμοι
Δομές Δεδομένων & Αναζήτηση & Ταξινόμηση 1 Αναζήτηση Έχω έναν πίνακα Α με Ν στοιχεία. Πρόβλημα: Βρες αν το στοιχείο x ανήκει στον πίνακα Αν ο πίνακας είναι αταξινόμητος τότε μόνη λύση σειριακή αναζήτηση
Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων
Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων Άσκηση 1 α) Η δομή σταθμισμένης ένωσης με συμπίεση διαδρομής μπορεί να τροποποιηθεί πολύ εύκολα ώστε να υποστηρίζει τις
Διάλεξη 17: O Αλγόριθμος Ταξινόμησης HeapSort
Διάλεξη 17: O Αλγόριθμος Ταξινόμησης HeapSort Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Η διαδικασία PercolateDown, Δημιουργία Σωρού O Αλγόριθμος Ταξινόμησης HeapSort Υλοποίηση, Παραδείγματα
Επιµέλεια Θοδωρής Πιερράτος
εδοµένα οµές δεδοµένων και αλγόριθµοι Τα δεδοµένα είναι ακατέργαστα γεγονότα. Η συλλογή των ακατέργαστων δεδοµένων και ο συσχετισµός τους δίνει ως αποτέλεσµα την πληροφορία. Η µέτρηση, η κωδικοποίηση,
Δομές δεδομένων (2) Αλγόριθμοι
Δομές δεδομένων (2) Αλγόριθμοι Παράγωγοι τύποι (struct) σύνοψη προηγουμένων Πίνακες: πολλές μεταβλητές ίδιου τύπου Παράγωγοι τύποι ή Δομές (struct): ομαδοποίηση μεταβλητών διαφορετικού τύπου struct Student
Αλγόριθμοι Ταξινόμησης Bubble Sort Quick Sort. Αντρέας Δημοσθένους Καθηγητής Πληροφορικής Ολυμπιάδα 2012
Αλγόριθμοι Ταξινόμησης Bubble Sort Quick Sort Αντρέας Δημοσθένους Καθηγητής Πληροφορικής Ολυμπιάδα 2012 3 5 1 Ταξινόμηση - Sorting Πίνακας Α 1 3 5 5 3 1 Ταξινόμηση (Φθίνουσα) Χωρίς Ταξινόμηση Ταξινόμηση
Κάθε στοιχείο που γίνεται αντιληπτό με μία από τις πέντε αισθήσεις μας
Κάθε στοιχείο που γίνεται αντιληπτό με μία από τις πέντε αισθήσεις μας είναι ένα δεδομένο. Τα δεδομένα μπορούν να αναπαραστήσουν αφαιρετικά την πραγματικότητα δηλαδή να μας δείχνουν μία απλοποιημένη όψη
Προγραµµατιστικές Τεχνικές
Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Αγρονόµων Τοπογράφων Μηχανικών Προγραµµατιστικές Τεχνικές Βασίλειος Βεσκούκης ρ. Ηλεκτρολόγος Μηχανικός & Μηχανικός Υπολογιστών ΕΜΠ v.vescoukis@cs.ntua.gr Ρωµύλος Κορακίτης
Διδάσκων: Κωνσταντίνος Κώστα
Διάλεξη Ε4: Επανάληψη Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγή σε δενδρικές δομές δεδομένων, Δυαδικά Δένδρα Αναζήτησης Ισοζυγισμένα Δένδρα & 2-3 Δένδρα Διδάσκων: Κωνσταντίνος
Δομές Δεδομένων. Δημήτρης Μιχαήλ. Ταξινόμηση. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο
Δομές Δεδομένων Ταξινόμηση Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Το πρόβλημα Είσοδος n αντικείμενα a 1, a 2,..., a n με κλειδιά (συνήθως σε ένα πίνακα, ή λίστα, κ.τ.λ)
Σύνοψη Προηγούμενου. Πίνακες (Arrays) Πίνακες (Arrays): Βασικές Λειτουργίες. Πίνακες (Arrays) Ορέστης Τελέλης
Σύνοψη Προηγούμενου Πίνακες (Arrays Ορέστης Τελέλης telelis@unipi.gr Τμήμα Ψηφιακών Συστημάτων, Πανεπιστήμιο Πειραιώς Διαδικαστικά θέματα. Aντικείμενο Μαθήματος. Aντικείμενα, Κλάσεις, Μέθοδοι, Μεταβλητές.
Γ7.5 Αλγόριθμοι Αναζήτησης. Γ Λυκείου Κατεύθυνσης
Γ7.5 Αλγόριθμοι Αναζήτησης Γ Λυκείου Κατεύθυνσης Εισαγωγή Αλγόριθμος αναζήτησης θεωρείται ένας αλγόριθμος, ο οποίος προσπαθεί να εντοπίσει ένα στοιχείο με συγκεκριμένες ιδιότητες, μέσα σε μία συλλογή από
Ενότητες 3 & 4: Δένδρα, Σύνολα & Λεξικά Ασκήσεις και Λύσεις
Ενότητες 3 & 4: Δένδρα, Σύνολα & Λεξικά Ασκήσεις και Λύσεις Άσκηση 1 Γράψτε μία αναδρομική συνάρτηση που θα παίρνει ως παράμετρο ένα δείκτη στη ρίζα ενός δυαδικού δένδρου και θα επιστρέφει το βαθμό του
Δομές Δεδομένων. Καθηγήτρια Μαρία Σατρατζέμη. Τμήμα Εφαρμοσμένης Πληροφορικής. Δομές Δεδομένων. Τμήμα Εφαρμοσμένης Πληροφορικής
Ενότητα 8: Γραμμική Αναζήτηση και Δυαδική Αναζήτηση-Εισαγωγή στα Δέντρα και Δυαδικά Δέντρα-Δυαδικά Δέντρα Αναζήτησης & Υλοποίηση ΔΔΑ με δείκτες Καθηγήτρια Μαρία Σατρατζέμη Άδειες Χρήσης Το παρόν εκπαιδευτικό
Αναζήτηση. 1. Σειριακή αναζήτηση 2. Δυαδική Αναζήτηση. Εισαγωγή στην Ανάλυση Αλγορίθμων Μάγια Σατρατζέμη
Αναζήτηση. Σειριακή αναζήτηση. Δυαδική Αναζήτηση Εισαγωγή στην Ανάλυση Αλγορίθμων Μάγια Σατρατζέμη Παραδοχή Στη συνέχεια των διαφανειών (διαλέξεων) η ασυμπτωτική έκφραση (συμβολισμός Ο, Ω, Θ) του χρόνου
Ενδεικτικές Ερωτήσεις Θεωρίας
Ενδεικτικές Ερωτήσεις Θεωρίας Κεφάλαιο 2 1. Τι καλούμε αλγόριθμο; 2. Ποια κριτήρια πρέπει οπωσδήποτε να ικανοποιεί ένας αλγόριθμος; 3. Πώς ονομάζεται μια διαδικασία που δεν περατώνεται μετά από συγκεκριμένο
Διδάσκων: Παναγιώτης Ανδρέου
Διάλεξη 12: Δέντρα ΙΙ -Δυαδικά Δέντρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Δυαδικά Δένδρα - Δυαδικά Δένδρα Αναζήτησης(ΔΔΑ) - Εύρεση Τυχαίου, Μέγιστου, Μικρότερου στοιχείου - Εισαγωγή
Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων
Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 2. Πίνακες 45 23 28 95 71 19 30 2 ομές εδομένων 4 5 Χρήστος ουλκερίδης Τμήμα Ψηφιακών Συστημάτων 12/10/2017
Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων
Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 2. Πίνακες 45 23 28 95 71 19 30 2 ομές εδομένων 4 5 Χρήστος ουλκερίδης Τμήμα Ψηφιακών Συστημάτων 21/10/2016
Διάλεξη 17: Δυαδικά Δέντρα. Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ
Διάλεξη 7: Δυαδικά Δέντρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Δυαδικά Δένδρα Δυαδικά Δένδρα Αναζήτησης Πράξεις Εισαγωγής, Εύρεσης Στοιχείου, Διαγραφής Μικρότερου Στοιχείου Διδάσκων:
ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ
ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ Ενότητα 6α: Αναζήτηση Μαρία Σατρατζέμη Τμήμα Εφαρμοσμένης Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commos. Για εκπαιδευτικό
Quicksort. Πρόβλημα Ταξινόμησης. Μέθοδοι Ταξινόμησης. Συγκριτικοί Αλγόριθμοι
Πρόβλημα Ταξινόμησης Quicksort Διδάσκοντες: Σ. Ζάχος, Δ. Φωτάκης Επιμέλεια διαφανειών: Δ. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Είσοδος : ακολουθία n αριθμών (α 1, α 2,..., α n
Διαίρει-και-Βασίλευε. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 2
Διαίρει-και-Βασίλευε Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 2 Διαίρει-και-Βασίλευε Γενική µέθοδος σχεδιασµού αλγορίθµων: Διαίρεση σε ( 2) υποπροβλήµατα (σηµαντικά) µικρότερου µεγέθους.
2.2.5 ΑΝΑΠΑΡΑΣΤΑΣΗ ΑΛΓΟΡΙΘΜΟΥ
2.2.5 ΑΝΑΠΑΡΑΣΤΑΣΗ ΑΛΓΟΡΙΘΜΟΥ ΑΝΑΠΑΡΑΣΤΑΣΗ ΑΛΓΟΡΙΘΜΟΥ Προκειμένου να επιτευχθεί η «ακριβής περιγραφή» ενός αλγορίθμου, χρησιμοποιείται κάποια γλώσσα που μπορεί να περιγράφει σειρές ενεργειών με τρόπο αυστηρό,
Διάλεξη 22: Δυαδικά Δέντρα. Διδάσκων: Παναγιώτης Ανδρέου
Διάλεξη 22: Δυαδικά Δέντρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Δυαδικά Δένδρα - Δυαδικά Δένδρα Αναζήτησης - Πράξεις Εισαγωγής, Εύρεσης Στοιχείου, Διαγραφής Μικρότερου Στοιχείου
Διαδικασιακός Προγραμματισμός
Τμήμα ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Διαδικασιακός Προγραμματισμός Διάλεξη 12 η Αναζήτηση/Ταξινόμηση Πίνακα Οι διαλέξεις βασίζονται στο βιβλίο των Τσελίκη και Τσελίκα C: Από τη Θεωρία στην
Έστω ένας πίνακας με όνομα Α δέκα θέσεων : 1 η 2 η 3 η 4 η 5 η 6 η 7 η 8 η 9 η 10 η
Μονοδιάστατοι Πίνακες Τι είναι ο πίνακας γενικά : Πίνακας είναι μια Στατική Δομή Δεδομένων. Δηλαδή συνεχόμενες θέσεις μνήμης, όπου το πλήθος των θέσεων είναι συγκεκριμένο. Στις θέσεις αυτές καταχωρούμε
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΛΓΟΡΙΘΜΟΙ. Πίνακες και βασικές επεξεργασίες αυτών
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΛΓΟΡΙΘΜΟΙ Πίνακες και βασικές επεξεργασίες αυτών Σκοπιές από τις οποίες μελετά η πληροφορική τα δεδομένα Γλωσσών προγραμματισμού Υλικού Δομών δεδομένων Ανάλυσης δεδομένων 22/11/08 Παρουσιάσεις
ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ
ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ Ενότητα 7: Αφαίρεση δεδόμενων Πασχαλίδης Δημοσθένης Τμήμα Διαχείρισης Εκκλησιαστικών Κειμηλίων Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.
ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΑΞΗ : Γ ΛΥΚΕΙΟΥ ΣΠΟΥΔΕΣ ΟΙΚΟΝΟΜΙΑΣ & ΠΛΗΡΟΦΟΡΙΚΗΣ
ΑΡΧΗ 1ης ΣΕΛΙ ΑΣ ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΑΞΗ : Γ ΛΥΚΕΙΟΥ ΣΠΟΥΔΕΣ ΟΙΚΟΝΟΜΙΑΣ & ΠΛΗΡΟΦΟΡΙΚΗΣ ΔΙΑΓΩΝΙΣΜΑ ΠΕΡΙΟΔΟΥ : ΦΕΒΡΟΥΑΡΙΟΥ ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ : 7 ΘΕΜΑ Α :
ΚΕΦΑΛΑΙΟ 8: Αφαίρεση δεδοµένων
ΚΕΦΑΛΑΙΟ 8: Αφαίρεση δεδοµένων 8.1 Βασικές έννοιες δοµών δεδοµένων 8.2 Σχετικές έννοιες 8.3 Υλοποίηση δοµών δεδοµένων 8.4 Μια σύντοµη µελέτη περίπτωσης 8.5 Προσαρµοσµένοι τύποι δεδοµένων 1 Βασικές δοµές
Δοµές Δεδοµένων. 11η Διάλεξη Ταξινόµηση Quicksort και Ιδιότητες Δέντρων. Ε. Μαρκάκης
Δοµές Δεδοµένων 11η Διάλεξη Ταξινόµηση Quicksort και Ιδιότητες Δέντρων Ε. Μαρκάκης Περίληψη Quicksort Χαρακτηριστικά επιδόσεων Μη αναδροµική υλοποίηση Δέντρα Μαθηµατικές ιδιότητες Δοµές Δεδοµένων 11-2
Διάλεξη 14: Δέντρα IV B Δένδρα. Διδάσκων: Παναγιώτης Ανδρέου
Διάλεξη 14: Δέντρα IV B Δένδρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: 2 3 Δένδρα, Εισαγωγή και άλλες πράξεις Άλλα Δέντρα: Β δένδρα, Β+ δέντρα, R δέντρα Διδάσκων: Παναγιώτης Ανδρέου ΕΠΛ231
Δομές Δεδομένων & Αλγόριθμοι
- Πίνακες 1 Πίνακες Οι πίνακες έχουν σταθερό μέγεθος και τύπο δεδομένων. Βασικά πλεονεκτήματά τους είναι η απλότητα προγραμματισμού τους και η ταχύτητα. Ωστόσο δεν παρέχουν την ευελιξία η οποία απαιτείται
ΣΗΜΕΙΩΣΕΙΣ ΘΕΩΡΙΑΣ ΚΕΦΑΛΑΙΟ 3 ΠΡΟΣΘΗΚΗ
ΣΗΜΕΙΩΣΕΙΣ ΘΕΩΡΙΑΣ ΚΕΦΑΛΑΙΟ 3 ΠΡΟΣΘΗΚΗ Α. ΣΤΑΤΙΚΕΣ ΚΑΙ ΔΥΝΑΜΙΚΕΣ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Δομές Δεδομένων Στατικές Δυναμικές Χαρακτηριστικά των Στατικών και Δυναμικών δομών δεδομένων Στατικές δομές: Αποθηκεύονται
Διάλεξη 26: Σωροί. Διδάσκων: Παναγιώτης Ανδρέου
Διάλεξη 26: Σωροί Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Ουρές Προτεραιότητας -Ο ΑΤΔ Σωρός, Υλοποίηση και πράξεις Διδάσκων: Παναγιώτης Ανδρέου ΕΠΛ035 Δομές Δεδομένων και Αλγόριθμοι
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ ΠΑΝΕΛΛΑΔΙΚΩΝ ΣΧΟΛΙΚΟΥ ΕΤΟΥΣ
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ ΠΑΝΕΛΛΑΔΙΚΩΝ ΣΧΟΛΙΚΟΥ ΕΤΟΥΣ 2014-2015 Πάτρα 5/5/2015 Ονοματεπώνυμο:.. Θέμα Α Α1. α. Να γράψετε στο τετράδιό σας τον
Δομές Δεδομένων & Αλγόριθμοι
Θέματα Απόδοσης Αλγορίθμων 1 Η Ανάγκη για Δομές Δεδομένων Οι δομές δεδομένων οργανώνουν τα δεδομένα πιο αποδοτικά προγράμματα Πιο ισχυροί υπολογιστές πιο σύνθετες εφαρμογές Οι πιο σύνθετες εφαρμογές απαιτούν
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ ΠΑΝΕΛΛΑΔΙΚΩΝ ΣΧΟΛΙΚΟΥ ΕΤΟΥΣ
Θέμα Α ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ ΠΑΝΕΛΛΑΔΙΚΩΝ ΣΧΟΛΙΚΟΥ ΕΤΟΥΣ 2014-2015 Πάτρα 5/5/2015 Ονοματεπώνυμο:.. Α1. α. Να γράψετε στο τετράδιό σας τον
Διάλεξη 12: Δέντρα ΙΙ Δυαδικά Δέντρα
Διάλεξη 12: Δέντρα ΙΙ Δυαδικά Δέντρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Δυαδικά Δένδρα Δυαδικά Δένδρα Αναζήτησης (ΔΔΑ) Εύρεση Τυχαίου, Μέγιστου, Μικρότερου στοιχείου Εισαγωγή στοιχείου
Διάλεξη 18: B-Δένδρα
Διάλεξη 18: B-Δένδρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγή & Ισοζυγισμένα Δένδρα 2-3 Δένδρα, Περιγραφή Πράξεων της Εισαγωγής και άλλες πράξεις Β-δένδρα Διδάσκων: Κωνσταντίνος
ΠΑΡΑΡΤΗΜΑ: QUIZ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ
ΠΑΡΑΡΤΗΜΑ: QUIZ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ (Οι ερωτήσεις µε κίτρινη υπογράµµιση είναι εκτός ύλης για φέτος) ΕΙΣΑΓΩΓΗ Q1. Οι Πρωταρχικοί τύποι (primitive types) στη Java 1. Είναι όλοι οι ακέραιοι και όλοι οι πραγµατικοί
Διάλεξη 16: Σωροί. Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Ουρές Προτεραιότητας - Ο ΑΤΔ Σωρός, Υλοποίηση και πράξεις
ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 1 Διάλεξη 16: Σωροί Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Ουρές Προτεραιότητας - Ο ΑΤΔ Σωρός, Υλοποίηση και πράξεις Ουρά Προτεραιότητας Η δομή
ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 8 Ο. Ταξινόμηση και Αναζήτηση Συναρτήσεις χειρισμού οθόνης ΣΙΝΑΤΚΑΣ Ι. ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ
ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 8 Ο Ταξινόμηση και Αναζήτηση Συναρτήσεις χειρισμού οθόνης ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ 2010-11 1 Εισαγωγή Η τακτοποίηση των δεδομένων με ιδιαίτερη σειρά είναι πολύ σημαντική λειτουργία που ονομάζεται
Αλγόριθμοι Ταξινόμησης Μέρος 1
Αλγόριθμοι Ταξινόμησης Μέρος 1 Μανόλης Κουμπαράκης 1 Το Πρόβλημα της Ταξινόμησης Το πρόβλημα της ταξινόμησης (sorting) μιας ακολουθίας στοιχείων με κλειδιά ενός γνωστού τύπου (π.χ., τους ακέραιους ή τις
Σχεδίαση Αλγορίθμων -Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο
Πολλαπλασιασμός μεγάλων ακεραίων (1) Για να πολλαπλασιάσουμε δύο ακεραίους με n 1 και n 2 ψηφία με το χέρι, θα εκτελέσουμε n 1 n 2 πράξεις πολλαπλασιασμού Πρόβλημα ρβημ όταν έχουμε πολλά ψηφία: A = 12345678901357986429
3 ΑΝΑ ΡΟΜΗ ΑΝΑΖΗΤΗΣΗ - ΤΑΞΙΝΟΜΗΣΗ. n! = 1*2*3*..(n-1)*n. n! = 1 αν n = 0, = n*(n-1)! αν n > ΑΝΑ ΡΟΜΗ Εισαγωγή
3 ΑΝΑ ΡΟΜΗ ΑΝΑΖΗΤΗΣΗ - ΤΑΞΙΝΟΜΗΣΗ 3.1 ΑΝΑ ΡΟΜΗ 3.1.1 Εισαγωγή ΕΦΑΡΜΟΣΜΕΝΗ ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ Αναδροµή είναι η µέθοδος κατά την οποία, σε µία γλώσσα προγραµµατισµού, µία διαδικασία ή συνάρτηση έχει την δυνατότητα
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ. 1 ο ΚΕΦΑΛΑΙΟ
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ 1 ο ΚΕΦΑΛΑΙΟ 1) Τι είναι πρόβλημα (σελ. 3) 2) Τι είναι δεδομένο, πληροφορία, επεξεργασία δεδομένων (σελ. 8) 3) Τι είναι δομή ενός προβλήματος (σελ. 8)
Δομές Δεδομένων. Ενότητα 2: Στοίβες Εισαγωγή-Υλοποίηση ΑΤΔ Στοίβα με Πίνακα-Εφαρμογή Στοίβας: Αντίστροφη Πολωνική Γραφή. Καθηγήτρια Μαρία Σατρατζέμη
Ενότητα 2: Στοίβες Εισαγωγή-Υλοποίηση ΑΤΔ Στοίβα με Πίνακα-Εφαρμογή Στοίβας: Αντίστροφη Πολωνική Γραφή Καθηγήτρια Μαρία Σατρατζέμη Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative
Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. και Μηχ. Υπολ.
Διάλεξη 13: Αλγόριθμοι Ταξινόμησης Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Οι αλγόριθμοι ταξινόμησης SelectionSort, InsertionSort, Στις ερχόμενες διαλέξεις θα δούμε τους αλγόριθμους Mergesort,
ΚΕΦΑΛΑΙΟ 3 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ
ΚΕΦΑΛΑΙΟ 3 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ Τα δεδομένα (data) είναι η αφαιρετική αναπαράσταση της πραγματικότητας και συνεπώς μία απλοποιημένη όψη της. Η συλλογή των ακατέργαστων δεδομένων και ο συσχετισμός
ΕΠΛ 231 οµές εδοµένων και Αλγόριθµοι Άννα Φιλίππου, 2006 9-1
Σωροί Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Ουρές Προτεραιότητας Σωροί υλοποίηση και πράξεις Ο αλγόριθµος ταξινόµησης HeapSort Παραλλαγές Σωρών ΕΠΛ 231 οµές εδοµένων και Αλγόριθµοι
Ταξινόμηση με συγχώνευση Merge Sort
Ταξινόμηση με συγχώνευση Merge Sort 7 2 9 4 2 4 7 9 7 2 2 7 9 4 4 9 7 7 2 2 9 9 4 4 Πληροφορικής 1 Διαίρει και Βασίλευε Η μέθοδος του «Διαίρει και Βασίλευε» είναι μια γενική αρχή σχεδιασμού αλγορίθμων
8. Σωροί (Heaps)-Αναδρομή- Προχωρημένη Ταξινόμηση
Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 8. Σωροί (Heaps)-Αναδρομή- Προχωρημένη Ταξινόμηση 2 ομές εδομένων 4 5 Χρήστος ουλκερίδης Τμήμα Ψηφιακών Συστημάτων
Σωροί. Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Ουρές Προτεραιότητας Σωροί υλοποίηση και πράξεις Ο αλγόριθμος ταξινόμησης HeapSort
Σωροί Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Ουρές Προτεραιότητας Σωροί υλοποίηση και πράξεις Ο αλγόριθμος ταξινόμησης HeapSort ΕΠΛ 231 Δομές Δεδομένων και Αλγόριθμοι 9-1 Ουρά προτεραιότητας
Ουρά Προτεραιότητας (priority queue)
Ουρά Προτεραιότητας (priority queue) Δομή δεδομένων που υποστηρίζει δύο βασικές λειτουργίες : Εισαγωγή στοιχείου με δεδομένο κλειδί. Επιστροφή ενός στοιχείου με μέγιστο (ή ελάχιστο) κλειδί και διαγραφή
Δομές Δεδομένων. Δημήτρης Μιχαήλ. Ουρές Προτεραιότητας. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο
Δομές Δεδομένων Ουρές Προτεραιότητας Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ουρά Προτεραιότητας Το πρόβλημα Έχουμε αντικείμενα με κλειδιά και θέλουμε ανά πάσα στιγμή
Δομές Δεδομένων (Data Structures)
Δομές Δεδομένων (Data Structures) Στοίβες Ουρές Στοίβες: Βασικές Έννοιες. Ουρές: Βασικές Έννοιες. Βασικές Λειτουργίες. Παραδείγματα. Στοίβες Δομή τύπου LIFO: Last In - First Out (τελευταία εισαγωγή πρώτη
Οι λίστες, χάνοντας τα πλεονεκτήματα των πινάκων, λύνουν προβλήματα που παρουσιάζουν οι πίνακες
Δομές δεδομένων Πίνακες Οι πίνακες είναι το πιο απλό «μέσο» αποθήκευσης ομοειδούς πληροφορίας. Χρησιμοποιούν ακριβώς όση μνήμη χρειάζεται για την αποθήκευση της πληροφορίας Επιτρέπουν την προσπέλαση άμεσα
Πληροφορική 2. Δομές δεδομένων και αρχείων
Πληροφορική 2 Δομές δεδομένων και αρχείων 1 2 Δομή Δεδομένων (data structure) Δομή δεδομένων είναι μια συλλογή δεδομένων που έχουν μεταξύ τους μια συγκεκριμένη σχέση Παραδείγματα δομών δεδομένων Πίνακες
Αλγόριθµοι και Πολυπλοκότητα
Αλγόριθµοι και Πολυπλοκότητα Ν. Μ. Μισυρλής Τµήµα Πληροφορικής και Τηλεπικοινωνιών, Πανεπιστήµιο Αθηνών Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα Φεβρουαρίου 0 / ένδρα Ενα δένδρο είναι
Πίνακες. Ι.Ε.Κ ΓΛΥΦΑΔΑΣ Τεχνικός Τεχνολογίας Internet Αλγοριθμική Ι (Ε) Σχολ. Ετος A Εξάμηνο
Πίνακες Ι.Ε.Κ ΓΛΥΦΑΔΑΣ Τεχνικός Τεχνολογίας Internet Αλγοριθμική Ι (Ε) Σχολ. Ετος 2012-13 A Εξάμηνο Πίνακες Η ποιο γνωστή και διαδεδομένη στατική δομή είναι ο πίνακας. Οι πίνακες αποτελούνται από στοιχεία
Αλγόριθμοι ταξινόμησης
Αλγόριθμοι Ταξινόμησης Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Οι αλγόριθμοι ταξινόμησης BuubleSort, SelectionSort, InsertionSort, Merger Sort, Quick Soft ΕΠΛ Δομές Δεδομένων και Αλγόριθμοι
Δοµές Δεδοµένων. 9η Διάλεξη Ταξινόµηση - Στοιχειώδεις µέθοδοι. Ε. Μαρκάκης
Δοµές Δεδοµένων 9η Διάλεξη Ταξινόµηση - Στοιχειώδεις µέθοδοι Ε. Μαρκάκης Περίληψη Bubble Sort Selection Sort Insertion Sort Χαρακτηριστικά επιδόσεων Shellsort Ταξινόµηση συνδεδεµένων λιστών Δοµές Δεδοµένων
Αναδρομή Ανάλυση Αλγορίθμων
Αναδρομή Ανάλυση Αλγορίθμων Παράδειγμα: Υπολογισμός του παραγοντικού Ορισμός του n! n! = n x (n - 1) x x 2 x 1 Ο παραπάνω ορισμός μπορεί να γραφεί ως n! = 1 αν n = 0 n x (n -1)! αλλιώς Παράδειγμα (συνέχ).
ΒΑΣΙΚΕΣ ΕΠΕΞΕΡΓΑΣΙΕΣ ΜΟΝΟΔΙΑΣΤΑΤΩΝ ΚΑΙ ΔΙΣΔΙΑΣΤΑΤΩΝ ΠΙΝΑΚΩΝ ΟΙ ΠΙΟ ΣΗΜΑΝΤΙΚΟΙ ΑΛΓΟΡΙΘΜΟΙ
ΒΑΣΙΚΕΣ ΕΠΕΞΕΡΓΑΣΙΕΣ ΜΟΝΟΔΙΑΣΤΑΤΩΝ ΚΑΙ ΔΙΣΔΙΑΣΤΑΤΩΝ ΠΙΝΑΚΩΝ ΟΙ ΠΙΟ ΣΗΜΑΝΤΙΚΟΙ ΑΛΓΟΡΙΘΜΟΙ ΕΥΡΕΣΗ ΜΕΓΑΛΥΤΕΡΟΥ/ΜΙΚΡΟΤΕΡΟΥ ΣΤΟΙΧΕΙΟΥ ΜΟΝΟΔΙΑΣΤΑΤΟΥ -1 Ολα τα στοιχεία του πίνακα είναι διαφορετικά μεταξύ τους.
Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ
Διάλεξη 14: Αλγόριθμοι Ταξινόμησης Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Οι αλγόριθμοι ταξινόμησης 3) Mergesort Ταξινόμηση με Συγχώνευση 4) BucketSort Ταξινόμηση με Κάδους Διδάσκων:
Βασικές δοµές δεδοµένων. Ορολογία λιστών. 8.1 Βασικές έννοιες δοµών δεδοµένων 8.2 Υλοποίηση δοµών δεδοµένων 8.3 Μια σύντοµη υπόθεση εργασίας
ΚΕΦΑΛΑΙΟ 8: Αφηρηµένοι τύποι δεδοµένων 8.1 οµές δεδοµένων (data structures) 8.1 Βασικές έννοιες δοµών δεδοµένων 8.2 Υλοποίηση δοµών δεδοµένων 8.3 Μια σύντοµη υπόθεση εργασίας Αδόµητα δεδοµένα οδός Ζέας
3 ΟΥ και 9 ΟΥ ΚΕΦΑΛΑΙΟΥ
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 3 ΟΥ και 9 ΟΥ ΚΕΦΑΛΑΙΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΠΙΝΑΚΩΝ ΣΤΟΙΒΑΣ ΚΑΙ ΟΥΡΑΣ Α ΜΕΡΟΣ ΘΕΩΡΙΑ ΓΙΑ ΠΙΝΑΚΕΣ 3.1
ΠΛΗ111. Ανοιξη Μάθηµα 9 ο. Ταξινόµηση. Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης
ΠΛΗ111 οµηµένος Προγραµµατισµός Ανοιξη 2005 Μάθηµα 9 ο Ταξινόµηση Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης Ταξινόµηση Εισαγωγή Selection sort Insertion sort Bubble sort
Δένδρα. Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα:
Δένδρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγή σε δενδρικές δομές δεδομένων, ορισμοί, πράξεις και αναπαράσταση στη μνήμη ΔυαδικάΔένδρακαιΔυαδικάΔένδραΑναζήτησης ΕΠΛ 231 Δομές
Δομές Δεδομένων Ενότητα 4
ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Ενότητα 4: Ουρές Απόστολος Παπαδόπουλος Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό
Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων
Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 12. Ανασκόπηση 2 ομές εδομένων 4 5 Χρήστος ουλκερίδης Τμήμα Ψηφιακών Συστημάτων 13/01/2017 Εξεταστέα Ύλη
Επιμέλεια διαφανειών: Δ. Φωτάκης Τροποποιήσεις-προσθήκες: Α. Παγουρτζής. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών
Διαίρει-και-Βασίλευε Επιμέλεια διαφανειών: Δ. Φωτάκης Τροποποιήσεις-προσθήκες: Α. Παγουρτζής Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Διαίρει-και-Βασίλευε Γενική
Φίλη μαθήτρια, φίλε μαθητή,
Φίλη μαθήτρια, φίλε μαθητή, Το παρόν τεύχος, εναρμονισμένο πλήρως με το νέο Πρόγραμμα Σπουδών 2015-2016, αποτελεί μια λογική και φυσική συνέχεια του πρώτου τεύχους. Δόθηκε ιδιαίτερη έμφαση στη μεθοδολογία
Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων
Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 3. Στοίβες & Ουρές 2 ομές εδομένων 4 5 Χρήστος ουλκερίδης Τμήμα Ψηφιακών Συστημάτων 19/10/2017 Ανακεφαλαίωση:
Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων
Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 3. Στοίβες & Ουρές 2 ομές εδομένων 4 5 Χρήστος ουλκερίδης Τμήμα Ψηφιακών Συστημάτων 4/11/2016 Ανακεφαλαίωση:
ENOTHTA 3 ΟΜΕΣ Ε ΟΜΕΝΩΝ
ENOTHTA ΟΜΕΣ Ε ΟΜΕΝΩΝ Ανάπτυξη Εφαρµογών, Αλέξης Μπράιλας,, 000 . ΠΙΝΑΚΕΣ Ανάπτυξη Εφαρµογών, Αλέξης Μπράιλας,, 000 ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ εδοµένα Αλγόριθµοι + οµές εδοµένων = Προγράµµατα Πίνακες Στοίβα και Ουρά
Εισαγωγή στην Επεξεργασία Ερωτήσεων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1
Εισαγωγή στην Επεξεργασία Ερωτήσεων 1 Επεξεργασία Ερωτήσεων Θα δούμε την «πορεία» μιας SQL ερώτησης (πως εκτελείται) Ερώτηση SQL Ερώτηση ΣΒΔ Αποτέλεσμα 2 Βήματα Επεξεργασίας Τα βασικά βήματα στην επεξεργασία