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

Σχετικά έγγραφα
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Τµήµα Πληροφορικής Φθινοπωρινό Εξάµηνο

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Τµήµα Πληροφορικής Φθινοπωρινό Εξάµηνο

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

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

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

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Δοµές Δεδοµένων

Αλγόριθμοι Ταξινόμησης Μέρος 4

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

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

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

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

Οικονοµικό Πανεπιστήµιο Αθηνών. Τµήµα Πληροφορικής. Φθινοπωρινό Εξάµηνο Δοµές Δεδοµένων - Εργασία 2. Διδάσκων: E. Μαρκάκης

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

Δοµές Δεδοµένων. 2η Διάλεξη Αλγόριθµοι Ένωσης-Εύρεσης (Union-Find) Ε. Μαρκάκης. Βασίζεται στις διαφάνειες των R. Sedgewick K.

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

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

Περιγραφή Μαθήματος ΠΕΡΙΓΡΑΦΗ ΜΑΘΗΜΑΤΟΣ. Γεώργιος Παπαϊωάννου ( )

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

Προγραμματισμός Υπολογιστών με C++

Αλγόριθμοι Ταξινόμησης Μέρος 3

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

Δομημένος Προγραμματισμός ΙΙΙ - Java

ΗΥ 252: Αντικειµενοστρεφής Προγραµµατισµός

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

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

Κεφάλαιο 11 Ένωση Ξένων Συνόλων

ΠΡΟΧΩΡΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Χαρίδημος Κονδυλάκης Εισαγωγή

Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές

Το µάθηµα Αντικείµενο-Περιεχόµενα µαθήµατος Τρόπος ιδασκαλίας Εργαστήριο Βιβλίο, Βιβλιογραφία On-line Υλικό 2

ΗΥ 252: Αντικειµενοστρεφής Προγραµµατισµός

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

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

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

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

Κεφάλαιο 6 Ουρές Προτεραιότητας

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

οµηµένος Προγραµµατισµός ΙΙΙ - Java

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Δοµές Δεδοµένων

Δοµές Δεδοµένων. 11η Διάλεξη Ταξινόµηση Quicksort και Ιδιότητες Δέντρων. Ε. Μαρκάκης

Σχεδίαση & Ανάλυση Αλγορίθμων

Κεφάλαιο 10 Ψηφιακά Λεξικά

JDSL Java Data Structures Library

Άσκηση 3 (ανακοινώθηκε στις 14 Μαΐου 2018, προθεσμία παράδοσης: 8 Ιουνίου 2018, 12 τα μεσάνυχτα).

Εισαγωγή στον Προγ/μό Υπολογιστών. Διάλεξη 0

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

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

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

Αξιοποίηση Η/Υ και Πληροφορικής στην Μηχανική

ΗΥ 134. Εισαγωγή στην Οργάνωση και στον Σχεδιασμό Υπολογιστών Ι. Διάλεξη 1. Εισαγωγή. Νίκος Μπέλλας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων

Τεχνητή Νοημοσύνη. 2η διάλεξη ( ) Ίων Ανδρουτσόπουλος.

Τεχνολογίες Υλοποίησης Αλγορίθµων

θα γίνουν δεκτές εργασίες με mail ή με οποιοδήποτε άλλο τρόπο) μόνο την Δευτέρα 24/10 και ώρα 16:00-21:00 (Α32) (διδάσκουσα: Μπρίνια), την

οµηµένος Προγραµµατισµός ΙΙΙ - Java Παύλος Εφραιµίδης οµηµένος Προγρ. ΙΙΙ - 1 Java Το Μάθηµα

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

Τεχνητή Νοημοσύνη. 16η διάλεξη ( ) Ίων Ανδρουτσόπουλος.

ΒΙΒΛΙΑ ΒΙΒΛΙΑ

ΕΞΟΡΥΞΗ ΔΕΔΟΜΕΝΩΝ. Εισαγωγή

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

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

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

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

ΜΥΥ105: Εισαγωγή στον Προγραµµατισµό. Εισαγωγή Χειµερινό Εξάµηνο 2014

ΕΞΟΡΥΞΗ ΔΕΔΟΜΕΝΩΝ. Διαδικαστικά

Δομές Δεδομένων Ενότητα 1

Δυναμικές Δομές Δεδομένων Λίστες Δένδρα - Γράφοι

Πληροφορίες για το μάθημα. Ευάγγελος Παπαπέτρου

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

Δίκτυα Υπολογιστών. Πληροφορίες για το μάθημα. Ευάγγελος Παπαπέτρου. Τμ. Μηχ. Η/Υ & Πληροφορικής, Παν. Ιωαννίνων

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

ιαδικασία του Συστήµατος Ποιότητας ΠΑΡΑ ΟΣΗ ΜΑΘΗΜΑΤΩΝ

Κεφάλαιο 8. NP και Υπολογιστική Δυσεπιλυσιµότητα. Χρησιµοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne.

Αλγόριθμοι και Πολυπλοκότητα

Τεχνολογίες Υλοποίησης Αλγορίθµων

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

ΥΠΟΔΟΧΗ ΠΡΩΤΟΕΤΩΝ ΦΟΙΤΗΤΩΝ Παρουσίαση του Τµήµατος

Διάλεξη 2η: Αλγόριθμοι και Προγράμματα

Εισαγωγικά. 1 η Εβδομάδα. Κάθε Τρίτη (17:00-20:00) και Τετάρτη (13:00 15:00) στην αίθουσα Ι5. 4 ώρες Θεωρία (ΤΡ : 1η-2η ώρα, ΤΕ : 1η-2η ώρα)

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

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

Εισαγωγή στην πληροφορική

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Αλγόριθµοι Ένωσης-Εύρεσης (Union-Find) Κεφάλαιο 1. Ε. Μαρκάκης Επικ. Καθηγητής

Προγραμματισμός Διαδικτύου

Ταξινόμηση με συγχώνευση Merge Sort

Προγραμματισμός Διαδικτύου

Δοµές Δεδοµένων. 4η Διάλεξη Στοιχειώδεις Δοµές Δεδοµένων: Πίνακες και Λίστες. Ε. Μαρκάκης

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

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

Διάλεξη 1. Εισαγωγή Επισκόπηση άσκησης

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

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

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

δυαδική αναζήτηση Παύλος Σ. Εφραιμίδης

Επιχειρησιακή Έρευνα. Εισαγωγική Διάλεξη

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

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

Heapsort Using Multiple Heaps

FORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2016

ΕΠΛ 476: ΚΙΝΗΤΑ ΔΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ

HY380 Αλγόριθμοι και πολυπλοκότητα Hard Problems

Πελάτες φθάνουν στο ταμείο μιας τράπεζας Eνα μόνο ταμείο είναι ανοικτό Κάθε πελάτης παρουσιάζεται με ένα νούμερο - αριθμός προτεραιότητας Όσο ο

Transcript:

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

Τι είναι οι Δοµές Δεδοµένων? Δοµές Δεδοµένων 01-2

Τι είναι οι Δοµές Δεδοµένων? Webopedia: A scheme for organizing related pieces of information Wordnet: the organization of data (and its storage allocations in a computer) Wikipedia: a particular way of storing and organizing data in a computer so that it can be used efficiently. Wiktionary: An organization in software of data that allows more optimal searching, categorizing, or storage of information Δοµές Δεδοµένων 01-3

Αντικείµενο Περιεχόµενο µαθήµατος Βασικές δοµές δεδοµένων Χρήση δοµών στην ανάπτυξη προγραµµάτων Ρόλος δοµών στην υλοποίηση αλγορίθµων Ανεξαρτησία από γλώσσα προγραµµατισµού Πρακτική εφαρµογή σε Java Προαπαιτούµενες γνώσεις Εισαγωγή στον Προγραµµατισµό Υπολογιστών Προγραµµατισµός Υπολογιστών µε Java Δεν πρόκειται να µάθετε Java σε αυτό το µάθηµα! Παράλληλη παρακολούθηση Προγραµµατισµός Υπολογιστών µε C++ Δοµές Δεδοµένων 01-4

Μαθήµατα Διδάσκων Β. Μαρκάκης (markakis AT gmail. com) Ώρες γραφείου: Τρίτη 11:00-13:00, 4ος όροφος Αντωνιάδου, γραφείο κας Μάρθας Σιδέρη Υπεύθυνοι εργαστηρίων Θα ανακοινωθούν σύντοµα Θα ανακοινωθούν επίσης και ώρες γραφείου των υπευθύνων για παροχή βοήθειας και επίλυση αποριών Ώρες διαλέξεων Τρίτη 15:00-17:00 (Α21) Παρασκευή 13:00-15:00 (Δο) Δοµές Δεδοµένων 01-5

Εργαστήρια Θα γίνουν 8 εργαστήρια κατά τη διάρκεια του εξαµήνου Τέσσερα τµήµατα εργαστηρίων (CSLAB II) XXXX001-XXXX060 XXXX061-XXXX120 XXXX121-XXXX180 XXXX181-XXXX999 Τα εργαστήρια είναι προαιρετικά Σύντοµες προγραµµατιστικές ασκήσεις Ίδιες µε τις προηγούµενες χρονιές Υλοποίηση βασικών δοµών δεδοµένων Επίλυση αποριών και παροχή βοήθειας για τις εργασίες Δοµές Δεδοµένων 01-6

Νέο eclass Το υλικό του µαθήµατος (διαφάνειες, εργασίες, κτλ) θα διατίθεται µέσω του νέου eclass: http://eclass.aueb.gr Δοµές Δεδοµένων 2009-2010 Να κοιτάτε τις ανακοινώσεις τουλάχιστον 1 φορά την εβδοµάδα Ανακοινώσεις για τα εργαστήρια θα γίνονται επίσης µέσω του eclass Δοµές Δεδοµένων 01-7

Βαθµολόγηση Εργασίες: 30% Υποχρεωτικές εργασίες Τρεις εργασίες κατά τη διάρκεια του εξαµήνου Σταδιακή παράδοση εργασιών Ένα ή δύο άτοµα αναλόγως πολυπλοκότητας Παράδοση µέσω e-class Ο βαθµός ισχύει και για το Σεπτέµβριο Τελικές εξετάσεις: 70% Εξεταστέα ύλη είναι ό,τι καλύψουµε κατά τη διάρκεια του εξαµήνου Δοµές Δεδοµένων 01-8

Βιβλιογραφία Βασικό βιβλίο R. Sedgewick, Αλγόριθµοι σε Java, Μέρη 1-4, Κλειδάριθµος, 2005. Εναλλακτικό βιβλίο στη λίστα συγγραµµάτων R. Lafore, Αλγόριθµοι και Δοµές Δεδοµένων στη JAVA, Μ. Γκιούρδας, 2005. Άλλα βιβλία που µπορείτε να συµβουλευτείτε Σηµειώσεις Μάριου Συντιχάκη: Δοµές Δεδοµένων, 2005 (είναι ήδη διαθέσιµες στο eclass) Στη βιβλιοθήκη του πανεπιστηµίου: M. Goodrich, R. Tamassia, Data Structures and Algorithms in Java, John Wiley & Sons, 2003. M.Α. Weiss, Data Structures and Problem Solving Using Java, Addison- Wesley, 2002. Δοµές Δεδοµένων 01-9

Περιεχόµενο Εισαγωγή στους αλγόριθµους Προβλήµατα συνεδτικότητας και αλγόριθµοι ένωσης εύρεσης (union-find) Υλοποίηση και ανάλυση αλγορίθµων Πίνακες Συνδεδεµένες λίστες Στοίβες Ουρές Δένδρα Ταξινόµηση: Βασικοί αλγόριθµοι (insertion sort, bubblesort) Ταξινόµηση µε συγχώνευση (mergesort) Quicksort Δοµές Δεδοµένων 01-10

Περιεχόµενο Σωροί Ταξινόµηση µε σωρό (heapsort) Πίνακες συµβόλων Δυαδική αναζήτηση Δένδρα δυαδικής αναζήτησης Τυχαιοποιηµένα δένδρα Στρεβλά δένδρα Δένδρα κόκκινου µαύρου Κατακερµατισµός Ευρετήρια Β-δένδρα Δοµές Δεδοµένων 01-11

Σε τι διαφέρουν οι Δοµές Δεδοµένων από ένα µάθηµα προγραµµατισµού? Πόροι ενός PC: Μνήµη Χρόνος εκτέλεσης Βασικός στόχος του µαθήµατος: Πώς να µάθουµε να χρησιµοποιούµε την κατάλληλη δοµή δεδοµένων για ένα πρόβληµα έτσι ώστε να εξοικονοµήσουµε χώρο ή να µειώσουµε αισθητά το χρόνο εκτέλεσης Ανεξάρτητα από τη γλώσσα προγραµµατισµού που χρησιµοποιούµε Δοµές Δεδοµένων 01-12

Επόµενο µάθηµα Προβλήµατα συνδετικότητας, π.χ.: Συνδέονται 2 κόµβοι ενός µεγάλου δικτύου? (δηλαδή υπάρχει µονοπάτι από τον ένα στον άλλο?) Χρήστες σε ένα social network (facebook) Τρανζίστορ σε ένα µικροτσίπ Θα δούµε την επίλυση τέτοιων προβληµάτων µε αλγορίθµους ένωσης-εύρεσης (union-find) Δοµές Δεδοµένων 01-13