Δομές Δεδομένων. Ενότητα 1 - Εισαγωγή. Χρήστος Γκουμόπουλος. Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων

Σχετικά έγγραφα
Δομές Δεδομένων (Data Structures)

Εισαγωγικές Έννοιες. ημήτρης Φωτάκης. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών. Εθνικό Μετσόβιο Πολυτεχνείο

Υπολογιστικό Πρόβληµα

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

ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗ ΕΠΙΧΕΙΡΗΣΕΩΝ ΕΠΙΠΕΔΟ ΣΠΟΥΔΩΝ Προπτυχιακό ΚΩΔΙΚΟΣ ΜΑΘΗΜΑΤΟΣ GD2670

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ

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

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

Σήμερα. Εργαστήρια Τεχνικών Προγραμματισμού. Διαδικαστικά 19/3/2015. ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ και Τεχνικές Προγραμματισμού

εισαγωγικές έννοιες Παύλος Εφραιμίδης Δομές Δεδομένων και

Εισαγωγή στους Αλγόριθμους. Παύλος Εφραιμίδης, Λέκτορας

Περίγραμμα. Διαδικαστικά. Εργαστήρια Τεχνικών Προγραμματισμού 21/2/2017. ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ και Τεχνικές Προγραμματισμού

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ και Τεχνικές Προγραμματισμού

Δομές Δεδομένων (Data Structures)

Περιεχόμενα. 2 Αριθμητικά συστήματα

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ

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

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ

Πληροφορική ΙΙ. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα

Περιεχόμενα. Περιεχόμενα

Θέματα Προγραμματισμού Η/Υ

Δομές Δεδομένων. Λουκάς Γεωργιάδης.

Δομές Δεδομένων (Data Structures)

Περιεχόμενα. Δομές δεδομένων. Τεχνικές σχεδίασης αλγορίθμων. Εισαγωγή στον προγραμματισμό. Υποπρογράμματα. Επαναληπτικά κριτήρια αξιολόγησης

επιφάνεια πυριτίου Αναφορά στο Εκπαιδευτικό Υλικό : 5. Αναφορά στο Εργαστήριο :

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

Μεταβατικές διατάξεις Νέου Προγράμματος Σπουδών (ΝΠΣ) για τους φοιτητές εισαγωγής 2013 και πριν Υποχρεωτικά Μαθήματα

ΠΡΟΓΡΑΜΜΑ ΕΠΑΝΑΛΗΠΤΙΚΗΣ ΕΞΕΤΑΣΤΙΚΗΣ ΣΕΠΤΕΜΒΡΙΟΥ ΑΚΑΔΗΜΑΪΚΟΥ ΕΤΟΥΣ

ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗ ΕΠΙΧΕΙΡΗΣΕΩΝ ΕΠΙΠΕΔΟ ΣΠΟΥΔΩΝ Προπτυχιακό ΚΩΔΙΚΟΣ ΜΑΘΗΜΑΤΟΣ GD2520

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Διαδικαστικά

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ

ΠΛΗΡΟΦΟΡΙΚΗ: ΥΠΟΛΟΓΙΣΤΕΣ & ΤΕΧΝΟΛΟΓΙΕΣ ΔΙΑΔΙΚΤΥΟΥ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΛΟΠΟΝΝΗΣΟΥ ΣΧΟΛΗ ΟΙΚΟΝΟΜΙΑΣ ΔΙΟΙΚΗΣΗΣ και ΠΛΗΡΟΦΟΡΙΚΗΣ. ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ και ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΟΔΗΓΟΣ ΜΕΤΑΒΑΤΙΚΩΝ ΔΙΑΤΑΞΕΩΝ

Τι είναι αλγόριθμος; Υποπρογράμματα (υποαλγόριθμοι) Βασικές αλγοριθμικές δομές

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο Κάθε δομή μπορεί να χρησιμοποιηθεί σε οποιοδήποτε πρόβλημα ή εφαρμογή

ΑΕΠΠ Ερωτήσεις θεωρίας

Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Περιγραφή Μαθήματος. Ιωάννης Λυχναρόπουλος Μαθηματικός, MSc, PhD

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

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

xvi Προσέγγιση δομεσ δεδομενων και αλγοριθμοι

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

ΠΡΟΓΡΑΜΜΑ ΕΑΡΙΝΗΣ ΕΞΕΤΑΣΤΙΚΗΣ & ΕΠΙ ΠΤΥΧΙΩ ΧΕΙΜΕΡΙΝΑ ΑΚΑΔΗΜΑΪΚΟΥ ΕΤΟΥΣ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΛΟΠΟΝΝΗΣΟΥ ΣΧΟΛΗ ΟΙΚΟΝΟΜΙΑΣ ΔΙΟΙΚΗΣΗΣ και ΠΛΗΡΟΦΟΡΙΚΗΣ. ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ και ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΟΔΗΓΟΣ ΜΕΤΑΒΑΤΙΚΩΝ ΔΙΑΤΑΞΕΩΝ

Προγραμματισμός Χειμερινό Εξάμηνο 2014

ΠΡΟΓΡΑΜΜΑ ΕΠΑΝΑΛΗΠΤΙΚΗΣ ΕΞΕΤΑΣΤΙΚΗΣ ΣΕΠΤΕΜΒΡΙΟΥ ΑΚΑΔΗΜΑΪΚΟΥ ΕΤΟΥΣ

ΕΝΙΑΙΟ ΠΛΑΙΣΙΟ ΠΡΟΓΡΑΜΜΑΤΟΣ ΣΠΟΥΔΩΝ

Ανάπτυξη & Σχεδίαση Λογισμικού (ΗΥ420)

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

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 1 Ο. Εισαγωγή στις έννοιες Πρόβλημα, Αλγόριθμος, Προγραμματισμός, Γλώσσες Προγραμματισμού

ΑΝΑΛΥΤΙΚΟ ΠΡΟΓΡΑΜΜΑ ΕΞΕΤΑΣΗΣ

Εισαγωγή στην Επιστήμη των Υπολογιστών

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

ΕΙΔΗ,ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙ- ΣΜΟΥ

Δοµές Δεδοµένων. ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ Φθινοπωρινό Εξάµηνο Ευάγγελος Μαρκάκης

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

Δομές Δεδομένων (Data Structures)

Εισαγωγή στους Αλγόριθµους. Αλγόριθµοι. Ιστορικά Στοιχεία. Ο πρώτος Αλγόριθµος. Παραδείγµατα Αλγορίθµων. Τι είναι Αλγόριθµος

Προγραμματισμός Η/Υ. Προτεινόμενα θέματα εξετάσεων Εργαστήριο. Μέρος 1 ό. ΤΕΙ Λάρισας- Σχολή Τεχνολογικών Εφαρμογών Τμήμα Πολιτικών Έργων Υποδομής

Μαλούτα Θεανώ Σελίδα 1

ΟΠΤΙΚΗ & ΕΡΓΑΣΤΗΡΙΟ αμφ. 3, 4. ΑΡΙΘΜΗΤΙΚΗ ΑΝΑΛΥΣΗ ΙΙ αμφ. 2. ΓΕΝΙΚΗ ΧΗΜΕΙΑ αμφ. 4

ΚΟΡΜΟΥ. ΜΑΘΗΜΑΤΙΚΟΥ ΦΥΣΙΚΟΥ ΜΑΘΗΜΑΤΙΚΟΥ ΦΥΣΙΚΟΥ ΜΑΘΗΜΑΤΙΚΟΥ ΦΥΣΙΚΟΥ 5ο 7ο 9ο

ΚΟΡΜΟΥ. ΜΑΘΗΜΑΤΙΚΟΥ ΦΥΣΙΚΟΥ ΜΑΘΗΜΑΤΙΚΟΥ ΦΥΣΙΚΟΥ ΜΑΘΗΜΑΤΙΚΟΥ ΦΥΣΙΚΟΥ 5ο 7ο 9ο

Πολυτεχνική Σχολή Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών. Μάθημα: ECE_Υ106 Εισαγωγή στους Υπολογιστές. Εγχειρίδιο Μαθήματος

ΠΕΡΙΓΡΑΜΜΑ ΜΑΘΗΜΑΤΟΣ

ΠΡΟΓΡΑΜΜΑ ΕΠΑΝΑΛΗΠΤΙΚΗΣ ΕΞΕΤΑΣΤΙΚΗΣ ΣΕΠΤΕΜΒΡΙΟΥ ΑΚΑΔΗΜΑΪΚΟΥ ΕΤΟΥΣ

Αλγόριθμοι και Δομές Δεδομένων (IΙ) (γράφοι και δένδρα)

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής. Ακαδημαϊκό Έτος

ΠΑΡΑΡΤΗΜΑ: QUIZ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ

ΠΡΟΓΡΑΜΜΑ ΕΠΑΝΑΛΗΠΤΙΚΗΣ ΕΞΕΤΑΣΤΙΚΗΣ ΣΕΠΤΕΜΒΡΙΟΥ ΑΚΑΔΗΜΑΪΚΟΥ ΕΤΟΥΣ

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

Ασυμπτωτικός Συμβολισμός

Ασυμπτωτικός Συμβολισμός

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ. 1 ο ΚΕΦΑΛΑΙΟ

ΜΑΘΗΜΑ: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ. 1 η ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ: ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ

Α Ν Α Λ Τ Η Α Λ Γ Ο Ρ Ι Θ Μ Ω Ν Κ Ε Υ Α Λ Α Ι Ο 5. Πως υπολογίζεται ο χρόνος εκτέλεσης ενός αλγορίθμου;

ΠΡΟΓΡΑΜΜΑ ΤΜΗΜΑΤΙΚΩΝ ΕΞΕΤΑΣΕΩΝ ΕΑΡΙΝΩΝ ΜΑΘΗΜΑΤΩΝ ΕΞΕΤΑΣΤΙΚΗ ΠΕΡΙΟΔΟΣ ΙΟΥΝΙΟΥ ΕΤΟΣ A (ΕΞΑΜΗΝΟ 2ο)

Προγραμματισμός. Εαρινό Εξάμηνο 2011

Εισαγωγή στην Ανάλυση Αλγορίθμων (1) Διαφάνειες του Γ. Χ. Στεφανίδη

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

Week. 6: Java Collections

Εαρινό Εξάμηνο ΗΥ111 Απειροστικός Λογισμός ΙΙ

ΑΦAΙΡΕΤΙΚΟΣ (ή ΑΦΗΡΗΜΕΝΟΣ) ΤΥΠΟΣ ΔΕΔΟΜΕΝΩΝ (ΑΤΔ) (Abstract Data Type-ADT) - σύνολο δεδομένων (data, objects) - σύνολο πράξεων στα δεδομένα

ΕΤΟΣ A (ΕΞΑΜΗΝΟ 1 ο )

ΕΤΟΣ A (ΕΞΑΜΗΝΟ 2 ο )

Επιλέξτε Σωστό ή Λάθος για καθένα από τα παρακάτω:

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

Ασυμπτωτικός Συμβολισμός

Περιεχόμενα. Εισαγωγή του επιμελητή, Γιάννης Σταματίου 15 Πρόλογος 17 Εισαγωγή 23. Μέρος I. ΕΠΑΝΑΛΗΠΤΙΚΟΙ ΑΛΓΟΡΙΘΜΟΙ ΚΑΙ ΑΝΑΛΛΟΙΩΤΕΣ ΣΥΝΘΗΚΕΣ

ΚΑΤΑΝΟΜΗ ΜΑΘΗΜΑΤΩΝ ΣΤΑ ΕΞΑΜΗΝΑ

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ

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

ΠΡΟΓΡΑΜΜΑ ΕΞΕΤΑΣΕΩΝ ΑΚΑΔΗΜΑΪΚΟΥ ΕΤΟΥΣ

Α. Ερωτήσεις Ανάπτυξης

ΤΥΠΟΣ ΔΕΔΟΜΕΝΩΝ (ΑΤΔ) (Abstract Data Type-ADT)

Ενδεικτικές Ερωτήσεις Θεωρίας

ΕΤΟΣ A (ΕΞΑΜΗΝΟ 2 ο )

Ασυμπτωτικός Συμβολισμός

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2

Transcript:

Δομές Δεδομένων Ενότητα 1 - Εισαγωγή Χρήστος Γκουμόπουλος Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων

Αντικείμενο μαθήματος Δομές Δεδομένων (ΔΔ): Στην επιστήμη υπολογιστών μία ΔΔ είναι ένας συγκεκριμένος τρόπος αποθήκευσης και οργάνωσης δεδομένων στον υπολογιστή με σκοπό αυτά τα δεδομένα να μπορούν να χρησιμοποιηθούν αποδοτικά. Λειτουργίες σε ΔΔ : αναζήτηση, εισαγωγή, τροποποίηση, διαγραφή, ταξινόμηση, Οι ΔΔ συνδυάζονται με αλγόριθμους για να επιλύσουν ένα πρόβλημα ΔΔ + Αλγόριθμοι = Προγράμματα Διαφορετικές ΔΔ ταιριάζουν σε διαφορετικά προβλήματα Β-trees για υλοποίηση ΒΔ Hash Tables για υλοποίηση μεταγλωττιστών Υλοποίηση αλγόριθμων και δομών δεδομένων σε C ή C++ (Εργαστήριο). 2

Διάρθρωση μαθήματος Βασικές έννοιες αλγορίθμων και δομών δεδομένων Θέματα ανάλυσης και απόδοσης αλγορίθμων Αναπαράσταση ΔΔ σε γλώσσες προγραμματισμού Βασικές ΔΔ: πίνακες, γραμμικές λίστες, στοίβες, ουρές, ουρές προτεραιότητας Αλγόριθμοι ταξινόμησης Δένδρα Κατακερματισμός Γραφήματα 3

Σχετικά μαθήματα «Εισαγωγή στον Προγραμματισμό» παλιό «Σχεδίαση και Υλοποίηση Λογισμικού» (1 ο εξ.) «Μεθοδολογίες& Γλώσσες Προγραμματισμού Ι» (γλώσσα C++) (2 ο εξ.) «Μεθοδολογίες & Γλώσσες Προγραμματισμού ΙΙ» (γλώσσα Java) (3 ο εξ.) «Αλγόριθμοι & Πολυπλοκότητα» (4 ο εξ.) 4

Μέσα Διαλέξεις Εργαστήρια Η παρακολούθηση και η ενεργή συμμετοχή θεωρούνται εξ ορισμού αναγκαία για την επιτυχή ολοκλήρωση του μαθήματος. 5

LOGISTICS ΜΑΘΗΜΑΤΟΣ 6

Διδάσκοντες Θεωρία Χρήστος Γκουμόπουλος (goumop@aegean.gr) Εργαστήριο Γεώργιος Παπαλεξανδράτος (geopap@aegean.gr) 7

Βαθμολογία 50% Τελική Εξέταση 20% Πρόοδος 30% Βαθμός εργαστηρίου που προκύπτει από μια σειρά ασκήσεων Ο βαθμός του εργαστηρίου πρέπει να είναι 5. Ο βαθμός της προόδου και του εργαστηρίου ενεργοποιούνται μόνον όταν ο φοιτητής επιτύχει στις τελικές εξετάσεις, δηλ. εάν σε αυτές λάβει βαθμό τουλάχιστον 5. 8

Πρόοδος/Εξετάσεις Η εξέταση προόδου θα πραγματοποιηθεί την πρώτη εβδομάδα του Δεκέμβρη και θα εξεταστεί γραπτώς η ύλη που θα έχει καλυφθεί μέχρι εκείνο το σημείο. Η συμμετοχή στην πρόοδο είναι επιβεβλημένη. Η εξεταστική περίοδος ξεκινά 24.01.2011 και τελειώνει 18.02.2011 Η εξέταση τόσο στην πρόοδο όσο και στις τελικές εξετάσεις είναι με περιορισμένο χρόνο και με κλειστές σημειώσεις. 9

Εργαστήριο 2 ώρες (Πέμπτη 17.00 19.00 & 19.00 21.00 ) Δύο ομάδες, αλφαβητικός διαχωρισμός Ο διαχωρισμός των ομάδων είναι αυστηρόςγια όλους! Η παρακολούθηση εργαστηρίου είναι υποχρεωτική. Η εξέταση και η παράδοση της κάθε άσκησης θα γίνεται στο εργαστήριο την προκαθορισμένη ημερομηνία. Οι ασκήσεις που θα δοθούν θα έχουν όλες την ίδια βαρύτητα. 10

Δεοντολογία Οι ασκήσεις είναι ατομικές Γόνιμη ανταλλαγή απόψεων μεταξύ των φοιτητών σχετικά με τις ασκήσεις και επιτρέπεται και ενθαρρύνεται. Η συνεργασία ΔΕΝ πρέπει να οδηγεί σε από κοινού επίλυση και συγγραφή της άσκησης. Η υποβολή κοινών απαντήσεων από διαφορετικούς φοιτητές που συνεργάστηκαν δεν επιτρέπεται και θεωρείται ως ΑΝΤΙΓΡΑΦΗ. Η αντιγραφή έχει ως αποτέλεσμα το μηδενισμό της άσκησης και τη δυσμενή αξιολόγηση συνολικά για το μάθημα. 11

Συμβουλή Να μην βλέπετε τις εργασίες των συμφοιτητών σας κατά την διάρκεια της εκπόνησής τους Να μην δίνετε το κείμενο ή/και τον κώδικα των εργασιών σας στους συμφοιτητές σας. Στην τεκμηρίωση των εργασιών σας θα πρέπει να αναφέρετε όλες τις πηγές που χρησιμοποιήσατε (π.χ. βιβλία, διαδίκτυο, κτλ) Εάν είναι απαραίτητο ρωτήστε τους διδάσκοντες για διευκρινήσεις 12

Βιβλία ΑΛΓΟΡΙΘΜΟΙ ΣΕ C, ΜΕΡΗ 1-4: ΘΕΜΕΛΙΩΔΕΙΣ ΕΝΝΟΙΕΣ, ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ, ΤΑΞΙΝΟΜΗΣΗ, ΑΝΑΖΗΤΗΣΗ ROBERT SEDGEWICK 3 η έκδοση/2006 ISBN: 960-209-896-1 Εκδόσεις Κλειδάριθμος ΕΠΕ Δομές δεδομένων, αλγόριθμοι και εφαρμογές C++ Sahnii Sartaj 1η έκδοση/2004 ISBN: 978-960-418-030-1 Εκδόσεις Α. ΤΖΙΟΛΑ Ο.Ε. 13

Ερωτήσεις; 14

ΒΑΣΙΚΕΣΕΝΝΟΙΕΣΑΛΓΟΡΙΘΜΩΝ ΚΑΙ ΔΟΜΩΝΔΕΔΟΜΕΝΩΝ 15

Βασικές έννοιες Αλγόριθμος Πρόβλημα Στιγμιότυπο Αναπαράσταση αλγορίθμων Ορθότητα αλγορίθμου Απόδοση αλγορίθμων Τύπος Δεδομένων Αφηρημένος Τύπος Δεδομένων Δομή Δεδομένων 16

Απόδοση αλγόριθμων Ένα πρόβλημα (π.χ. αναζήτηση, ταξινόμηση) μπορεί να λύνεται με πολλούς αλγόριθμους Χρειάζεται να μπορούμε να συγκρίνουμε τους αλγόριθμους μεταξύ τους. Το βασικότερο κριτήριο είναι ο χρόνος εκτέλεσης Άλλο κριτήριο είναι ο χώρος στην μνήμη Αναζητούμε αλγόριθμους που επιλύουν ένα πρόβλημα με αποδοτικό τρόπο ως προς τον χρόνο και τον χώρο 17

Μέτρηση απόδοσης Χρησιμοποιούνται δύο τρόποι για την μέτρηση της απόδοσης ενός αλγόριθμου: Πειραματικές μετρήσεις Θεωρητική ανάλυση 18

Πειραματικές Μετρήσεις Υλοποίηση προγράμματος Δημιουργία εισόδων διαφορετικού μεγέθους και σύνθεσης Καταγραφή του χρόνου εκτέλεσης για κάθε στιγμιότυπο Απεικόνιση σε γραφική παράσταση 19

Ανάλυση Αλγορίθμων Χρησιμοποιείται μια αναπαράσταση του αλγόριθμου (π.χ. ψευδοκώδικας) Εκτίμηση υπολογιστικών πόρων που απαιτεί η εκτέλεση του αλγόριθμου ως συνάρτηση του μεγέθους εισόδου Βασίζεται σε μαθηματικά εργαλεία και δεν εξαρτάται από συγκεκριμένη υλοποίηση Ανάλυση (χειρότερης, μέσης, καλύτερης περίπτωσης) 20

Υπολογιστικό μοντέλοram Μηχανή Άμεσης Προσπέλασης Μνήμης (Random Access Machine, RAM) Ιδεατός υπολογιστής με έναν επεξεργαστή, απεριόριστη μνήμη και ακολουθιακή εκτέλεση εντολών. Oαλγόριθμος που εκτελείται σε RAM,κάθε στοιχειώδες βήμα του απαιτεί μοναδιαίο χρόνο. Στοιχειώδη βήματα: προσπέλαση μιας θέσης μνήμης, ανάθεση τιμής, αριθμητικές και λογικές πράξεις, σύγκριση, εντολή ελέγχου 21

Πολυπλοκότητα χώρου Πόσες θέσεις μνήμης δεσμεύει ο αλγόριθμος όταν εφαρμόζεται σε είσοδο μεγέθους n; Ποια είναι η πολυπλοκότητα χώρου για επαναληπτική υλοποίηση; 22

Πολυπλοκότητα χρόνου Πόσο χρόνο(σε στοιχειώδη βήματα) χρειάζεται ο αλγόριθμος όταν εφαρμόζεται σε είσοδο μεγέθους n; Χειρότερη περίπτωση Καλύτερη περίπτωση 23

Υπολογισμός πολυωνύμου Πολυώνυμο βαθμού n: P ( x) = a i i x = 0 Υπολογισμός τιμής P(x) στο σημείο x. P( x) a = (...((( an x+ an 1 ) x+ an 2 ) x+ an 3 ) x+...) x+ Ποια είναι η πολυπλοκότητα χρόνου στις δύο περιπτώσεις; n i 0 Η ακριβής εκτίμηση μπορεί να είναι δύσκολο να γίνει. Μας απασχολεί κυρίως η τάξη μεγέθους του χρόνου εκτέλεσης σε συνάρτηση του n ασυμπτωτική ανάλυση 24

Τύπος Δεδομένων Ένας τύπος δεδομένων καθορίζει: ένα σύνολο τιμών ένα σύνολο από λειτουργίες που μπορούν να εκτελεστούν επί των τιμών Βασικοί τύποι δεδομένων Boolean = {false, true} Λειτουργίες: AND, OR, NOT Integer = {0, ±1, ±2, ±3, } Λειτουργίες: +, -, *, /, % 25

Αφηρημένος Τύπος Δεδομένων Αφηρημένος Τύπος Δεδομένων (ΑΤΔ) είναι ένα σύνολο τιμών (γενικότερα αντικειμένων) και ένα σύνολο λειτουργιών επί των αντικειμένων. Το σύνολο των λειτουργιών ονομάζεται διασύνδεση (interface) του ΑΤΔ. Εισαγωγή, διαγραφή, αναζήτηση, μέγεθος, Ο ΑΤΔ ορίζεται θεωρητικά χωρίς να μπαίνει σε λεπτομέρειες υλοποίησης είτε της αναπαράστασης των αντικειμένων, είτε της υλοποίησης των λειτουργιών 26

Δομή Δεδομένων Οργάνωση δεδομένων στην κύρια μνήμη. Δομή Δεδομένων (ΔΔ) είναι υλοποίηση ενός ΑΤΔ και η διατύπωσή της περιλαμβάνει: ένα σύνολο στοιχείων και ένα σύνολο λειτουργιών επί των στοιχείων (όπως ο ΑΤΔ). την αναπαράσταση των στοιχείων (δομή των στοιχείων και τρόπος αποθήκευσης) την υλοποίηση των λειτουργιών Η υλοποίηση της ΔΔ (αναπαράσταση στοιχείων και οι αλγόριθμοι που υλοποιούν τις λειτουργίες) μπορούν να αλλάξουν χωρίς να αλλάξει ο ΑΤΔ. Ομοιότητα με τις αρχές του αντικειμενοστρεφούς μοντέλου ανάπτυξης Κλάση ΑΤΔ Υλοποίηση κλάσης υλοποίηση ΑΤΔ ΔΔ 27