Διάλεξθ 01: Δομζσ Δεδομζνων και Αλγόρικμοι - Ειςαγωγι

Σχετικά έγγραφα
Διάλεξη 01: Δομές Δεδομένων και Αλγόριθμοι Εισαγωγή

Διάλεξη 01 Δομές Δεδομένων και Αλγόριθμοι - Εισαγωγή

Διάλεξη 01: Δομές Δεδομένων και Αλγόριθμοι - Εισαγωγή

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

Διάλεξη 1: Δομές Δεδομένων και Αλγόριθμοι - Εισαγωγή. Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

Ειςαγωγι ςτο Δομθμζνο Προγραμματιςμό. Βαγγζλθσ Οικονόμου

17. Πολυδιάςτατοι πίνακεσ

ΕΝΟΤΗΤΑ 2: ΤΟ ΛΟΓΙΣΜΙΚΟ ΤΟΥ ΥΠΟΛΟΓΙΣΤΗ. ΚΕΦΑΛΑΙΟ 5: Γνωριμία με το λογιςμικό του υπολογιςτι

Ένα πρόβλθμα γραμμικοφ προγραμματιςμοφ βρίςκεται ςτθν κανονικι μορφι όταν:

Δομζσ Δεδομζνων Πίνακεσ

Παράςταςη ακεραίων ςτο ςυςτημα ςυμπλήρωμα ωσ προσ 2

Δομζσ Αφαιρετικότθτα ςτα Δεδομζνα

ΘΥ101: Ειςαγωγι ςτθν Πλθροφορικι

Παράςταςη ςυμπλήρωμα ωσ προσ 1

Γράφοι. Δομζσ Δεδομζνων Διάλεξθ 9

Δείκτεσ Διαχείριςθ Μνιμθσ. Βαγγζλθσ Οικονόμου Διάλεξθ 8

Προγραμματιςμόσ Μεκόδων Επίλυςθσ Προβλθμάτων. 15. Πίνακεσ ΙI. Ιωάννθσ Κατάκθσ. ΕΠΛ 032: Προγραμματιςμόσ Μεκόδων Επίλυςθσ Προβλθμάτων

ςυςτιματα γραμμικϊν εξιςϊςεων

Βαςεις δεδομενων 1. Δρ. Αλζξανδροσ Βακαλουδθσ

ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ. 7 θ Διάλεξθ Διαχείριςθ Μνιμθσ Μζροσ Γ

ΕΝΟΤΘΤΑ 2: ΕΠΙΚΟΙΝΩΝΩ ΜΕ ΤΟΝ ΥΠΟΛΟΓΙΣΤΘ. ΚΕΦΑΛΑΙΟ 6: Θ «Βοικεια» ςτον Υπολογιςτι

Τμήματα Μνήμησ Υπολογιςμόσ Φυςικών διευθύνςεων. Εκπαιδεφτρια: Μαρία Πολίτθ

ΜΑΘΗΜΑΤΙΚΑ Α Γυμνασίου

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

Τυπικζσ Γλϊςςεσ Περιγραφισ Υλικοφ Εργαςτιριο 1

8 τριγωνομετρία. βαςικζσ ζννοιεσ. γ ςφω. εφω και γ. κεφάλαιο

Διορκώνω τισ εργαςίεσ των ςυμφοιτθτών μου

ΕΡΓΑΣΗΡΙΑΚΗ ΑΚΗΗ 4.1

Ειδικά Θζματα Βάςεων Δεδομζνων

ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ. 3 ο Εργαςτιριο υγχρονιςμόσ Διεργαςιϊν

Η θεωρία τησ ςτατιςτικήσ ςε ερωτήςεισ-απαντήςεισ Μέροσ 1 ον (έωσ ομαδοποίηςη δεδομένων)

Σ ΤΑΤ Ι Σ Τ Ι Κ Η. Statisticum collegium V

Ανάπτυξη Εφαρμογών με Σχεςιακέσ Βάςεισ Δεδομένων

Εισαγωγικές έννοιες. Αντώνησ Κ Μαώργιώτησ

Θεςιακά ςυςτιματα αρίκμθςθσ

Ανάπτυξη Εφαρμογών Σε Προγραμματιςτικό Περιβάλλον

Ιςοηυγιςμζνα δζντρα και Β- δζντρα. Δομζσ Δεδομζνων

ΕΝΟΤΗΤΑ 2: ΕΠΙΚΟΙΝΩΝΩ ΜΕ ΤΟΝ ΥΠΟΛΟΓΙΣΤΗ. ΚΕΦΑΛΑΙΟ 5: Αρχεία - Φάκελοι

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

Η διαδικαςία επιλογήσ μαθημάτων

Διαχείριςθ του φακζλου "public_html" ςτο ΠΣΔ

Εργαςτιριο Βάςεων Δεδομζνων

Πόςο εκτατό μπορεί να είναι ζνα μη εκτατό νήμα και πόςο φυςικό. μπορεί να είναι ζνα μηχανικό ςτερεό. Συνιςταμζνη δφναμη versus «κατανεμημζνησ» δφναμησ

ΦΥΕ 14 ΑΚΑΔ. ΕΤΟΣ Η ΕΡΓΑΣΙΑ. Ημερομηνία παράδοςησ: 12 Νοεμβρίου (Όλεσ οι αςκιςεισ βακμολογοφνται ιςοτίμωσ με 10 μονάδεσ θ κάκε μία)

Πρόγραμμα Προπτυχιακών πουδών (ΠΠ) Σμήματοσ «Διοίκηςησ Επιχειρήςεων» Πάτρασ, ΣΕΙ Δυτικήσ Ελλάδασ

ΑΞΙΟΛΟΓΗΣΗ ΕΚΠΑΙΔΕΥΤΙΚΟΥ

ΕΝΟΣΗΣΑ 1: ΓΝΩΡIΖΩ ΣΟΝ ΤΠΟΛΟΓΙΣΗ. ΚΕΦΑΛΑΙΟ 2: Σο Τλικό του Τπολογιςτι

ΑΝΑΠΣΤΞΘ ΕΦΑΡΜΟΓΩΝ Ε ΠΡΟΓΡΑΜΜΑΣΙΣΙΚΟ ΠΕΡΙΒΑΛΛΟΝ 3 ο ΓΕΝΙΚΟ ΛΤΚΕΙΟ Ν. ΜΤΡΝΘ- ΕΠΙΜΕΛΕΙΑ: ΠΤΡΙΔΑΚΘ Λ.

Μάθημα 9 ο ΤΕΧΝΙΚΕΣ ΔΙΑΧΕΙΡΙΣΗΣ ΕΙΚΟΝΙΚΗΣ ΜΝΗΜΗΣ

Μετατροπι Αναλογικοφ Σιματοσ ςε Ψθφιακό. Διάλεξθ 10

Πολυπλέκτες. 0 x 0 F = S x 0 + Sx 1 1 x 1

Αναφορά Εργαςίασ Nim Game

ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ. 9 θ & 10 θ Διάλεξθ Ιδεατι Μνιμθ Μζροσ Β

Α) Ενδεικτικϋσ απαντόςεισ των θεμϊτων

ΛΕΙΤΟΥΓΙΚΆ ΣΥΣΤΉΜΑΤΑ. 6 θ Διάλεξθ Διαχείριςθ Μνιμθσ Μζροσ Β

Οδηγός χρήσης Blackboard Learning System για φοιτητές

ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ. 2 ο Εργαςτιριο Διαχείριςθ Διεργαςιϊν

ΛΕΙΤΟΥΓΙΚΆ ΣΥΣΤΉΜΑΤΑ. 5 ο Εργαςτιριο Ειςαγωγι ςτθ Γραμμι Εντολϊν

Δοµές Δεδοµένων και Αλγόριθµοι - Εισαγωγή

ΡΟΓΑΜΜΑΤΙΣΤΙΚΟ ΡΕΙΒΑΛΛΟΝ MICRO WORLDS PRO

x n D 2 ENCODER m - σε n (m 2 n ) x 1 Παραδείγματα κωδικοποιθτϊν είναι ο κωδικοποιθτισ οκταδικοφ ςε δυαδικό και ο κωδικοποιθτισ BCD ςε δυαδικό.

Προχωρθμζνα Θζματα Συςτθμάτων Ελζγχου

Λαμβάνοντασ υπόψη ότι κατά την πρόςθεςη δφο δυαδικϊν ψηφίων ιςχφει: Κρατοφμενο

Βάςεισ Δεδομζνων Ι. Ενότητα 12: Κανονικοποίηςη. Δρ. Τςιμπίρθσ Αλκιβιάδθσ Τμιμα Μθχανικών Πλθροφορικισ ΤΕ

ΜΑ032: ΓΡΑΜΜΙΚΗ ΑΛΓΕΒΡΑ Εαρινό εξάμηνο , Διδάςκων: Γιώργοσ Γεωργίου ΕΝΔΙΑΜΕΗ ΕΞΕΣΑΗ, 21 Μαρτίου, 2012 Διάρκεια: 2 ώρεσ

ΒΙΟΛΟΓΟΙ ΓΙΑ ΦΥΣΙΚΟΥΣ

ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ. 8 θ Διάλεξθ Ιδεατι Μνιμθ Μζροσ Α

Αςφάλεια και Προςταςία Δεδομζνων

Εκπαιδευτικό Σενάριο

ΠΑΝΕΠΙΣΘΜΙΟ ΔΤΣΙΚΘ ΜΑΚΕΔΟΝΙΑ ΣΜΘΜΑ ΜΘΧΑΝΙΚΩΝ ΠΛΘΡΟΦΟΡΙΚΘ ΚΑΙ ΣΘΛΕΠΙΚΟΙΝΩΝΙΩΝ. Λειτουργικά υςτιματα, 4 ο Εξάμθνο Ψθφιακι χεδίαςθ ΙΙ, 4 ο Εξάμθνο

Δζντρα. Δομζσ Δεδομζνων

ΕΦΑΡΜΟΓΕ ΒΑΕΩΝ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΔΙΑΔΙΚΣΤΟΤ. Φιλιοποφλου Ειρινθ

ΔΙΔΑΚΤΙΚΗ ΤΗΣ ΠΑΙΔΑΓΩΓΙΚΗΣ ΓΥΜΝΑΣΤΙΚΗΣ ΙΙ

Ονοματεπϊνυμο.. ΔΙΑΓΩΝΙΣΜΑ ΑΕΠΠ

Πειραματικι Ψυχολογία (ΨΧ66)

Δομζσ Δεδομζνων. Αναηιτθςθ και Ταξινόμθςθ Διάλεξθ 3

Επιχειρηςιακή Ζρευνα και εφαρμογζσ με την χρήςη του λογιςμικοφ R

ΠΡΟΓΡΑΜΜΑΣΙΜΟ ΠΑΡΑΓΩΓΗ E ΕΞΑΜΗΝΟ. ΔΙΔΑΚΩΝ: ΔΡ. ΝΙΚΟΛΑΟ ΡΑΧΑΝΙΩΣΗ ΓΡΑΦΕΙΟ: 312 ΣΗΛ.:

Υπολογιςτική πολυπλοκότητα αλγορίθμων γραμμικοφ προγραμματιςμοφ

ΕΦΑΡΜΟΓΕ ΒΑΕΩΝ ΔΕΔΟΜΕΝΩΝ ΣΗ ΝΟΗΛΕΤΣΙΚΗ. Φιλιοποφλου Ειρινθ

Ιδιότθτεσ πεδίων Γενικζσ.

Νζεσ Τάςεισ ςτην εκπαιδευτική διαδικαςία: Gamification

Συγγραφι επιςτθμονικισ εργαςίασ. Η κορφφωςθ τθσ προςπάκειάσ μασ

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

Παράδοςθ αςκιςεων ςε μορφι ζντυπθ. Προτεινόμενεσ αςκιςεισ από το Βιβλίο με τίτλο

ΟΔΗΓΙΕ ΔΗΜΙΟΤΡΓΙΑ ΚΑΙ ΡΤΘΜΙΗ ΔΩΡΕΑΝ ΗΛΕΚΣΡΟΝΙΚΟΤ ΣΑΧΤΔΡΟΜΕΙΟΤ ΣΟ GOOGLE (G-MAIL)

Δυναμικι Μθχανϊν I. Διάλεξθ 16. Χειμερινό Εξάμθνο 2013 Τμιμα Μθχανολόγων Μθχ., ΕΜΠ

Βάςεισ Δεδομζνων Ι. Ενότητα 4: Μετατροπή ςχήματοσ Ο/Σ ςε ςχεςιακό. Δρ. Τςιμπίρθσ Αλκιβιάδθσ Τμιμα Μθχανικϊν Ρλθροφορικισ ΤΕ

5 ΜΕΘΟΔΟΙ - ΠΑΡΑΜΕΤΡΟΙ

ΥΡΟΝΣΙ ΣΗΡΙΟ Μ. Ε. ΚΑΙ ΚΕΝΣΡΟ ΙΔΙΑΙΣΕΡΩΝ ΜΑΘΗΜΑΣΩΝ «ΚΤΡΙΣ Η» ΔΙΑΓΩΝΙ ΜΑ ΑΕΠΠ

3 θ διάλεξθ Επανάλθψθ, Επιςκόπθςθ των βαςικϊν γνϊςεων τθσ Ψθφιακισ Σχεδίαςθσ

ΥΡΟΝΣΙΣΗΡΙΟ Μ. Ε. ΚΑΙ ΚΕΝΣΡΟ ΙΔΙΑΙΣΕΡΩΝ ΜΑΘΗΜΑΣΩΝ «ΚΤΡΙΣΗ» ΔΙΑΓΩΝΙΜΑ ΘΕΜΑΣΑ Β ΛΤΚΕΙΟΤ ΥΕΒΡΟΤΑΡΙΟ 2018 ΑΕΠΠ

ΕΝΟΣΗΣΑ 1: ΓΝΩΡIΖΩ ΣΟΝ ΤΠΟΛΟΓΙΣΗ. ΚΕΦΑΛΑΙΟ 3: Εργονομία

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

Τεχνικζσ Ανάλυςησ Διοικητικών Αποφάςεων

ΑΝΣΙΣΡΟΦΗ ΤΝΑΡΣΗΗ. f y x y f A αντιςτοιχίηεται ςτο μοναδικό x A για το οποίο. Παρατθριςεισ Ιδιότθτεσ τθσ αντίςτροφθσ ςυνάρτθςθσ 1. Η. f A τθσ f.

Προτεινόμενεσ αςκιςεισ απο το Βιβλίο με τίτλο

Μία ελκυςτικι ειςαγωγι ςτον προγραμματιςμό

1 ο ΜΑΘΗΜΑ Κεφάλαιο 1, Παράγραφοι 1.1, 1.2 ΕΙΣΑΓΩΓΗ ΣΤΗ ΣΤΑΤΙΣΤΙΚΗ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ

Transcript:

ΕΠΛ231 Δομζσ Δεδομζνων και Αλγόρικμοι 1 Διάλεξθ 01: Δομζσ Δεδομζνων και Αλγόρικμοι - Ειςαγωγι Στθν ενότθτα αυτι κα μελετθκοφν τα εξισ επιμζρουσ κζματα: Ειςαγωγι ςτισ ζννοιεσ: - Δεδομζνα και Ενδόμνθμθ Αναπαράςταςθ τουσ - Οργάνωςθ Δεδομζνων και Δομζσ Δεδομζνων - Αλγόρικμοι και Πολυπλοκότθτα

Συμβόλαιο Μακιματοσ Επίπεδο: Προπτυχιακό Πίςτωςθ: 7.5 μονάδεσ ECTS Μζκοδοι Διδαςκαλίασ Διαλζξεισ (3 ϊρεσ εβδομαδιαίωσ): Παράδοςθ Διδας. Φλθσ Φροντιςτιριο (1 ϊρα εβδομαδιαίωσ): Φλθ / Θεωρθτικι Εξάςκθςθ Εργαςτιριο (2 ϊρεσ εβδομαδιαίωσ): Πρακτικι Εξάςκθςθ Αξιολόγθςθ 40% Τελικι Εξζταςθ (1) 20% Ενδιάμεςθ Εξζταςθ (1) Ημερ.: Παραςκευι, 13 Μαρτίου 10:30 12:00 20% Θεωρθτικζσ Αςκιςεισ/quizzes 20% Προγραμματιςτικζσ Αςκιςεισ (3 ςυνολικά) ΕΠΛ231 Δομζσ Δεδομζνων και Αλγόρικμοι 2

ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 1-3 Πλθροφορίεσ Μακιματοσ Διδάςκων: Στυλιανι Κλεάνκουσ Γραφείο: FST-01 Β116 Τθλζφωνο: 22-892748 E-mail: stellak@cs.ucy.ac.cy Ώρεσ Γραφ.: Δευτζρα 11:00-12:00 και Τρίτθ 12:00-13:00 (ι κατόπιν ςυνεννοιςεωσ) Διαλζξεισ Αίκουςα: ΧΩΔ-02 011 Ημζρα/Ώρα: Τρίτθ, Παραςκευι / 10:30-12:00 Φροντιςτιρια Υπεφκυνοσ: Στζλλα Κλεάνκουσ Αίκουςα: ΧΩΔ-02B111 Ημζρα/Ώρα: Τετάρτθ, 16:00 17:00 Εργαςτιρια Αίκουςα: Β121 Ημζρα/Ώρα: http://www.cs.ucy.ac.cy/courses/epl231/ Τρίτθ, 13:30-15:00

Προαπαιτοφμενα Προαπαιτοφμενα: ΕΠΛ 111 (Διακριτζσ Δομζσ ςτθν Πλθροφορικι και Υπολογιςμό) ΕΠΛ 132 (Αρχζσ Προγραμματιςμοφ) Το ΕΠΛ231 είναι προαπαιτοφμενο για τα υποχρεωτικά μακιματα ΕΠΛ222 (Λειτουργικά Συςτιματα) ΕΠΛ223 (Θεωρία και Πρακτικι Μεταγλωττιςτϊν) ΕΠΛ233 (Αντικειμενοςτραφισ Προγραμματιςμόσ) ΕΠΛ242 (Βάςεισ Δεδομζνων) όπωσ και για διάφορα μακιματα περιοριςμζνθσ επιλογισ ΕΠΛ428 (Προγραμματιςμόσ Συςτθμάτων) ΕΠΛ431 (Σφνκεςθ Παράλλθλων Αλγορίκμων) ΕΠΛ433 (Προγραμματιςμόσ και Ικανοποίθςθ Περιοριςμϊν) ΕΠΛ442 (Πλθροφορικά Συςτιματα Μάκθςθσ) ΕΠΛ447 (Τεχνθτι Νοθμοςφνθ) ΕΠΛ451 (Εξόρυξθ Δεδομζνων ςτον Παγκόςμιο Ιςτό) ΕΠΛ231 Δομζσ Δεδομζνων και Αλγόρικμοι 4

Βιβλιογραφία Βαςικι Βιβλιογραφία Mark Allen Weiss, Data Structures and Algorithm Analysis in Java. 3rd edition, Addison Wesley, 2011. Βοθκθτικι Βιβλιογραφία Σθμειϊςεισ Μακιματοσ και Συνοδευτικό Υλικό Data Structures & Algorithms in JAVA: Michael T. Goodrich, Roberto Tamassia, ISBN-10: 0470398809, ISBN-13: 978-0470398807, 2010. Data Structures and Problem Solving Using Java, Mark Allen Weiss, ISBN-10: 0321546229, ISBN-13: 9780321546227, Prentice Hall, 2009. Algorithm Design: Jon Kleinberg, Eva Tardos, ISBN-10: 813170310X, ISBN-13: 9788131703106, Pearson Education, 2006. Algorithms: Robert Sedgewick, Kevin Daniel Wayne, ISBN-10: 032157351X, ISBN-13: 978-0321573513, Addison-Wesley Professional, 2011. ΕΠΛ231 Δομζσ Δεδομζνων και Αλγόρικμοι 5

ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 1-6 Απορίεσ Διαλζξεισ Εργαςτιριο Φροντιςτιριο Ώρεσ Γραφείου

Γιατί είναι ςθμαντικό το μάκθμα; ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 1-7 Οι αλγόρικμοι ζχουν παλιζσ ρίηεσ, νζεσ ευκαιρίεσ. Η μελζτθ των αλγορίκμων ξεκινά τουλάχιςτον από τον Ευκλείδθ. Διατυπϊκθκαν από τουσ Church και Turing τθ δεκαετία του 1930. Μερικοί ςθμαντικοί αλγόρικμοι ανακαλφφκθκαν από προπτυχιακοφσ φοιτθτζσ ςτα πλαίςια του μακιματοσ!

Γιατί είναι ςθμαντικό το μάκθμα; Η επίδραςι των αλγορίκμων είναι ευρεία και εκτεταμζνθ Internet. Web search, packet routing, distributed file sharing,... Biology. Human genome project, protein folding,... Computers. Circuit layout, file system, compilers,... Computer graphics. Movies, video games, virtual reality,... Security. Cell phones, e-commerce, voting machines,... Multimedia. MP3, JPG, DivX, HDTV, face recognition,... Social networks. Recommendations, news feeds, advertisements,.. Physics. N-body simulation, particle collision simulation,... ΕΠΛ 231 Δομζσ Δεδομζνων και Αλγόρικμοι 1-8

ΕΠΛ231 Δομζσ Δεδομζνων και Αλγόρικμοι 9 Δεδομζνα - Τα δεδομζνα βρίςκονται ςτο χαμθλότερο επίπεδο αφαιρετικότθτασ - Από τα δεδομζνα προκφπτει θ πλθροφορία και θ γνώςθ. Τα δεδομζνα που χρθςιμοποιοφμε δεν ζχουν πάντοτε τον ίδιο βακμό πολυπλοκότθτασ, π.χ., Στοιχεία Φοιτθτι vs. Ηλικία Ατόμου Μερικά μποροφν να αναλυκοφν ςε απλοφςτερα ςυςτατικά, ενϊ άλλα δεν μποροφν. Δεδομζνα που δεν μποροφν να αναλυκοφν λζγονται πρωτογενι δεδομζνα primitive data types (π.χ. int, char) Τα δεδομζνα ενόσ προβλιματοσ ςυνικωσ δεν είναι μια άμορφθ ςυλλογι ςτοιχείων. Τισ περιςςότερεσ φορζσ μποροφν να εκφραςτοφν με γνωςτζσ μακθματικζσ δομζσ, π.χ. ςαν ζνα απλό ςφνολο (διακριτϊν ςτοιχείων): {2, 3, 5, 7, 11, 13} ςαν ζνα διάνυςμα (διατεταγμζνων ςτοιχείων): (2, 3, 5, 7, 11, 13) ςαν ζνασ πίνακασ : 3 5 7 2 11 13

Δομζσ Δεδομζνων - Οι δομζσ δεδομζνων είναι ςυλλογζσ πρωτόγονων δεδομζνων, που ςυνδυάηονται για να ςχθματίςουν πολυπλοκότερα δεδομζνα. Χρθςιμοποιϊντασ τουσ αρχζγονουσ τφπουσ δεδομζνων, μποροφμε να ςυνκζςουμε πιο πολφπλοκεσ δομζσ Θα χρθςιμοποιιςουμε τον όρο πίνακασ για να περιγράψουμε μια ςυλλογι ςτοιχείων τα οποία κα ονομάςουμε κόμβουσ ι καταχωριματα. Ζνασ κόμβοσ μπορεί να είναι απλόσ, δθλαδι να αποτελείται από ζνα μόνο πρωτόγονο δεδομζνο, ι να είναι ςφνκετοσ, οπότε αποτελείται από δφο ι περιςςότερα πεδία. Τα πεδία ενόσ κόμβου μπορεί να αντιπροςωπεφουν πρωτόγονα δεδομζνα διαφόρων τφπων. Στοιχεία Φοιτθτι Όνομα (String) Ταυτότθτα (int) Διεφκυνςθ Οδόσ (String) Αρικμόσ (int) Επαρχία (String) Παράδειγμα Δομισ Φοιτθτι ςτθν JAVA class Address{ String street; int number; } class Student{ String name; int id; Address saddress; } ΕΠΛ231 Δομζσ Δεδομζνων και Αλγόρικμοι 10

Δεδομζνα (διεφκυνςθ και μικοσ) Ζνα πεδίο ι ζνα καταχϊρθμα χαρακτθρίηεται από τθ διεφκυνςθ του και το μικοσ του. Η διεφκυνςθ ενόσ πεδίου ι ενόσ καταχωριματοσ είναι θ διεφκυνςθ τθσ πρϊτθσ του κυψελίδασ μνιμθσ και το μικοσ του είναι ο αρικμόσ κυψελίδων από τισ οποίεσ αποτελείται. Address 4 bytes * Value 3669504 1 3669508 2 3669512 3 3669524 Α 3669536 5 int a[] μήκος=3 Παραδείγματα ςτθν C int x = 5; printf("x=%d\taddress of x=%d\n", x, &x); int c = 'A'; printf("c=%c\taddress of c=%d\n", c, &c); int a[]={1,2,3}; for(int i=0; i<3; i++){ printf("a[%d]=%d\taddress of a[%d]=%d\n", i,a[i],i,&a[i]); } Η διεφκυνςθ του πρϊτου πεδίου και ολόκλθρου του πίνακα είναι 3669504. Η διεφκυνςθ του δεφτερου καταχωριματοσ 3669508 κ.ο.κ. * Ιςχφει για x86 αρχιτεκτονικζσ με ςφνολο διευκφνςεων 2 32 4x10 9. Για x64 αρχιτεκτονικζσ είναι 8 bytes με ςφνολο διευκφνςεων 2 64 = 18x10 18! ΕΠΛ231 Δομζσ Δεδομζνων και Αλγόρικμοι 11

Ενδόμνθμθ Παράςταςθ Δομών Δεδομζνων Για να αναφερκοφμε ςε ζνα καταχϊρθμα ι ςε ζνα πεδίο, χρθςιμοποιοφμε ςυνικωσ ςυμβολικά ονόματα (όπωσ ςε γλϊςςεσ προγραμματιςμοφ θ ονομαςία μεταβλθτϊν αντιςτοιχεί ςε μία λζξθ τθσ μνιμθσ, π.χ., array). Για να πραγματοποιθκεί μια δομι δεδομζνων, απαιτείται θ ςυςχζτιςθ των ςυμβολικών ονομάτων με αντίςτοιχα τμιματα τθσ μνιμθσ του υπολογιςτι. Αυτό μπορεί να γίνει με δφο τρόπουσ: 1. Διαδοχικι (Στατικι) Χοριγθςθ Μνιμθσ Παράδειγμα: Αποκικευςθ πίνακα κατά γραμμζσ ι/και ςτιλεσ Address Value 3143928 1 3143932 2 3143936 3 3143940 4 3143944 5 3143948 6 Παράδειγμα ςτθν C int b[][3]={{1,2,3}, {4,5,6}}; for(int i=0; i<2; i++){ for(int j=0; j<3; j++){ printf("address of b[%d][%d]=%d\n", i,j,&b[i][j]); } } Τυπώνει Address of b[0][0]= 3143928 Address of b[0][1]= 3143932 Address of b[0][2]= 3143936 Address of b[1][0]= 3143940 Address of b[1][1]= 3143944 Address of b[1][2]= 3143944 ΕΠΛ231 Δομζσ Δεδομζνων και Αλγόρικμοι 12

Ενδόμνθμθ Παράςταςθ Δομών Δεδομζνων 2. Συνδετικι Χοριγθςθ Μνιμθσ Ζνα πεδίο μπορεί να παριςτά τθ διεφκυνςθ ενόσ άλλου πεδίου. Ζτςι κατά τθ ςυνδετικι χοριγθςθ μνιμθσ κάκε κόμβοσ περιζχει πλθροφορία ςχετικά με το που βρίςκεται κάποιοσ άλλοσ κόμβοσ τθσ δομισ (π.χ., ο επόμενοσ, ο προθγοφμενοσ). Για τθν αποκικευςθ αυτισ τθσ πλθροφορίασ κάκε κόμβοσ χρειάηεται ζνα ειδικό πεδίο (pointer). Το πεδίο αυτό είναι χαρακτθριςτικό τθσ ςυνδετικισ χοριγθςθσ μνιμθσ. Παράδειγμα: Απλά Συνδεδεμζνθ λίςτα (linked-list) data next data next data next head A B C NULL ΕΠΛ231 Δομζσ Δεδομζνων και Αλγόρικμοι 13

ΕΠΛ231 Δομζσ Δεδομζνων και Αλγόρικμοι 14 Παράδειγμα: Απλά Συνδεδεμζνθ λίςτα head data next data next data next A B C NULL Παράδειγμα ςτθν JAVA class Node { char data; Node next; } Node n1, n2, n3; n1.data='a'; n2.data='b'; n3.data='c'; n1.next=n2; n2.next=n3; n3.next=null; Node Address data next n2 3143928 B 3143948 3143932 n1 3143936 A 3143928 3143940 3143944 n3 3143948 C 0 Οι κόμβοι βρίςκονται ςε τυχαίεσ κζςεισ μνιμθσ. Στθν JAVA δεν μποροφμε να διαχειριςτοφμε τθ μνιμθ*. Τθ διαχειρίηεται το JVM

ΕΠΛ231 Δομζσ Δεδομζνων και Αλγόρικμοι 15 Αλγόρικμοι Τι είναι ζνασ αλγόρικμοσ; Abu Jafar Mohammed ibn Musa Αl-Khowarizmi (790-840) Αλγόρικμοσ είναι μια πεπεραςμζνθ ακολουκία εντολϊν, αυςτθρά κακοριςμζνων και εκτελζςιμων ςε πεπεραςμζνο (μετριςιμο) χρόνο, οι οποίεσ αν ακολουκθκοφν επιτυγχάνεται κάποιο επικυμθτό αποτζλεςμα. Απαραίτθτα κριτιρια: Υπάρχει είςοδοσ και ζξοδοσ Κακοριςμόσ εντολϊν (όχι αςάφειεσ). Περατότθτα (να διεκπεραιϊνει τον ςτόχο). Εξίςωςθ Wirth: Επίδοζη δεν είναι απαραίηηηη αλλά άκρως επιθσμηηή Αλγόρικμοι + Δεδομζνα = Προγράμματα Δθλαδι, δοκζντοσ ενόσ προβλιματοσ, ζνασ αλγόρικμοσ παρζχει τισ οδθγίεσ ςφμφωνα με τισ οποίεσ τα δεδομζνα του προβλιματοσ μεταςχθματίηονται και ςυνδυάηονται για να προκφψει θ λφςθ του προβλιματοσ.

Αλγόρικμοι (ςυν.) ΕΠΛ231 Δομζσ Δεδομζνων και Αλγόρικμοι 16

Αλγόρικμοι (ςυν.) ΕΠΛ231 Δομζσ Δεδομζνων και Αλγόρικμοι 17

Παράδειγμα Αλγορικμικοφ Προβλιματοσ Το πρόβλθμα επιλογισ (selection problem) Πρόβλθμα: Ζςτω ότι ζχουμε n αρικμοφσ και κζλουμε να προςδιορίςουμε τον k-οςτό πιο μεγάλο. π.χ. Ζςτω οι αρικμοί {5, 72, 3, 4, 1, 9, 65} (72,65,9,5,4,3,1) Ο 2 os πιο μεγάλοσ είναι ο 65, ο 6 os πιο μεγάλοσ είναι ο 3, κοκ. Αυτό το πρόβλθμα είναι γνωςτό ωσ το πρόβλθμα επιλογισ (the selection problem). Υπάρχουν διάφοροι εφκολοι τρόποι λφςθσ: 1. Sort-Based: Διαβάηουμε τουσ n αρικμοφσ ςε μια λίςτα, a. Ταξινομοφμε τθ λίςτα από το μεγαλφτερο ςτο μικρότερο με βάςθ κάποιο αλγόρικμο ταξινόμθςθσ. Επιςτρζφουμε το (k-1)οςτό ςτοιχείο τθσ λίςτασ, δθλαδι το a[k- 1]. 2. Buffer-based: Διαβάηουμε τουσ k πρϊτουσ αρικμοφσ ςε μια λίςτα a. Ταξινομοφμε τθ λίςτα από το μεγαλφτερο ςτο μικρότερο δθλ για k=3 ζχουμε a={72,5,3}. Μετά, επεξεργαηόμαςτε τουσ υπόλοιπουσ n-k αρικμοφσ ωσ εξισ: αν ζνα ςτοιχείο είναι πιο μικρό από το a[k-1] το αγνοοφμε, διαφορετικά το τοποκετοφμε ςτθ ςωςτι κζςθ τθσ λίςτασ. Όταν θ διαδικαςία αυτι τελειϊςει, επιςτρζφουμε το k-οςτό ςτοιχείο τθσ λίςτασ, δθλαδι το a[k-1]. ΕΠΛ231 Δομζσ Δεδομζνων και Αλγόρικμοι 18

Το πρόβλθμα επιλογισ Ποιοσ από τουσ δφο αλγόρικμουσ είναι ο καλφτεροσ; Οι αλγόρικμοι είναι ικανοποιθτικοί; Υλοποίθςθ των αλγορίκμων και εφαρμογι τουσ ςε υπολογιςτι με n=1,000,000 και k=500,000 χρειάηεται πάρα πολφ χρόνο για να τερματίςει. Εντοφτοισ υπάρχει αλγόρικμοσ που επιτυγχάνει το ίδιο αποτζλεςμα ςε δευτερόλεπτα. ΕΠΛ231 Δομζσ Δεδομζνων και Αλγόρικμοι 1-19

Στόχοσ Μακιματοσ Κατά τθν εκτζλεςθ ενόσ αλγόρικμου θ δομι που ζχουν τα δεδομζνα παίηει πολφ μεγάλο ρόλο. Επίςθσ το να γράφουμε ζνα ςωςτό πρόγραμμα δεν είναι αρκετό. Ιδιαίτερα, όταν το ςφνολο αρχικϊν δεδομζνων είναι μεγάλου μεγζκουσ, ο χρόνοσ εκτζλεςθσ ενόσ προγράμματοσ είναι κφριασ ςθμαςίασ. Στο μάκθμα αυτό κα μάκουμε να i) υπολογίηουμε το χρόνο εκτζλεςθσ αλγόρικμων και να ii) ςυγκρίνουμε τθν αποδοτικότθτα διαφορετικών αλγόρικμων, προτοφ τουσ υλοποιιςουμε. Θα μελετιςουμε επίςθσ μεκόδουσ βελτίωςθσ τθσ ταχφτθτασ προγραμμάτων. Κεντρικόσ ςτόχοσ του μακιματοσ είναι θ μελζτθ δομών δεδομζνων, αναπαράςταςισ τουσ ςτθ μνιμθ ενόσ υπολογιςτι, και αλγόρικμων που τισ δθμιουργοφν και τισ επεξεργάηονται. ΕΠΛ231 Δομζσ Δεδομζνων και Αλγόρικμοι 20

Περιεχόμενα Πολυπλοκότθτα αλγόρικμων και ανάλυςθ μζςθσ και χείριςτθσ περίπτωςθσ. Τφποι δεδομζνων και αφθρθμζνοι τφποι δεδομζνων. Τφποι λίςτασ, ςωροφ και ουράσ. Παράςταςθ και αποδοτικι υλοποίθςθ τζτοιων δομϊν. Μθ γραμμικζσ δομζσ δεδομζνων. Δζνδρα. Δζνδρα διερεφνθςθσ. Ιςοηυγιςμζνα δζνδρα. Bit-Διανφςματα. Τεχνικζσ κατακερματιςμοφ (hashing). Ουρζσ προτεραιότθτασ. Αλγόρικμοι ταξινόμθςθσ και ανάλυςθ τθσ αποδοτικότθτάσ τουσ. Γράφοι και αλγόρικμοι επεξεργαςίασ τουσ. ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 1-21

Μακθςιακά αποτελζςματα Με το πζρασ του μακιματοσ αναμζνεται να είςτε ςε κζςθ: Να αναλφετε και να ςυγκρίνετε τθν αποδοτικότθτα αλγορίκμων βάςει των τάξεων Ο, Ω και Θ. Να χρθςιμοποιείτε, να υλοποιείτε και να επεκτείνετε τισ δομζσ δεδομζνων που κα μελετθκοφν ςτο μάκθμα. Να εφαρμόηετε τουσ αλγόρικμουσ που κα μελετθκοφν ςτο μάκθμα ςε τυχαία δεδομζνα. Να ορίηετε τουσ αφθρθμζνουσ τφπουσ δεδομζνων που απαιτοφνται για τθν οργάνωςθ των δεδομζνων προβλθμάτων. Να ςχεδιάηετε και να υλοποιείτε αλγόρικμουσ που ελαχιςτοποιοφν τον χρόνο εκτζλεςισ τουσ όπωσ και τον χϊρο που χρθςιμοποιοφν. Να επιλζγετε ι και να δθμιουργείτε τισ κατάλλθλεσ δομζσ δεδομζνων και τουσ κατάλλθλουσ αλγόρικμουσ για υλοποίθςθ αφθρθμζνων τφπων δεδομζνων. Να επιλφετε και να υλοποιείτε αποδοτικζσ λφςεισ ςε ςφνκετα υπολογιςτικά προβλιματα χρθςιμοποιϊντασ τθ γλϊςςα Java. ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 1-22