Περιεχόμενα Μαθήματος

  • Εισαγωγή
    Βασικές έννοιες αλγορίθμων και δομών δεδομένων, τεχνικές απόδειξης, μοντέλο RAM, ανάλυση αλγορίθμων, χρονική πολυπλοκότητα, ασυμπτωτική ανάλυση, πρότυπες τάξεις πολυπλοκότητας, μαθηματικό υπόβαθρο, αναδρομικοί αλγόριθμοι και η ανάλυσή τους, αναδρομικές σχέσεις, πειραματική ανάλυση.
  • Πίνακες
    Πράξεις πάνω σε πίνακες, πολυδιάστατοι πίνακες, συμμετρικοί και τριγωνικοί πίνακες, αραιοί πίνακες.
  • Βασικές δομές δεδομένων
    Στοίβες (αφηρημένος τύπος δεδομένων, στατικές και δυναμικές υλοποιήσεις, στατική υλοποίηση πολλαπλών στοιβών, πολυπλοκότητα , εφαρμογές).
    Ουρές (αφηρημένος τύπος δεδομένων, στατικές και δυναμικές υλοποιήσεις, πολυπλοκότητα, εφαρμογές).
    Λίστες (ταξινομημένες και μη ταξινομημένες λίστες, κόμβος φρουρός, διάσχιση λίστας, διάσχιση zig-zag, διπλά συνδεδεμένες λίστες, πολυπλοκότητα, εφαρμογές).
  • Δέντρα
    Ορισμός, τύποι δένδρων και οι ιδιότητές τους, υλοποίηση, διάσχιση δένδρου, ταξινομημένα δένδρα.
  • Σύνολα & Λεξικά
    Αφηρημένος τύπος δεδομένων, υλοποίηση μέσω συνδεδεμένης λίστας, δυαδική αναζήτηση, δυαδικά δένδρα αναζήτησης.
  • Ισορροπημένα Δέντρα
    Δένδρα AVL, δένδρα-(2,3), κοκκινόμαυρα δένδρα.
  • Κατακερματισμός
    Γενική ιδέα, μέθοδοι επίλυσης συγκρούσεων, στρατηγικές ανοικτής διευθυνσιοδότησης (γραμμική αναζήτηση, διπλός κατακερματισμός), ανάλυση πολυπλοκότητας στρατηγικών, ταξινομημένος κατακερματισμός, επεκτάσιμος κατακερματισμός, συναρτήσεις κατακερματισμού, καθολικός κατακερματισμός.
  • Ουρές προτεραιότητας
    Αφηρημένος τύπος δεδομένων, υλοποίηση μέσω εξισορροπημένων δυαδικών δένδρων αναζήτησης, δένδρα που διασφαλίζουν την ιδιότητα της μερικής διάταξης, σωροί.
  • Ταξινόμηση
    InsertionSort, SelectionSort, MergeSort, HeapSort, QuickSort.
  • Σύνολα με ειδικές λειτουργίες
    Ξένα σύνολα που υποστηρίζουν την λειτουργία της ένωσης, Up-Trees.
  • Γράφοι
    Αναπαράσταση, υλοποίηση, διάσχιση, εφαρμογές.


Πρόγραμμα

Εβδομάδα Θέμα
Εισαγωγή - Βασικές έννοιες αλγορίθμων και δομών δεδομένων
Χρονικές Πολυπλοκότητες - Επιμερισμένο Κόστος, Απλά παραδείγματα αναδρομικών σχέσεων - Πίνακες
Βασικές Δομές Δεδομένων: Λίστες, Στοίβες, Ουρές
Λίστες
Δένδρα
Δένδρα
Ισοζυγισμένα Δένδρα: Υλοποίηση Δυναμικών Λεξικών
Ισοζυγισμένα Δένδρα: Υλοποίηση Δυναμικών Λεξικών
Κατακερματισμός
10η Κατακερματισμός
11η Ουρές Προτεραιότητας
12η Ταξινόμηση
13η Σύνολα που υποστηρίζουν ειδικές λειτουργίες
14η Γράφοι - Τεχνικές Σχεδίασης Αλγορίθμων


Παρακολούθηση

Η παρακολούθηση στις διαλέξεις συνίσταται ισχυρά, αλλά δεν είναι υποχρεωτική. Οι φοιτητές θα πρέπει να γνωρίζουν κατά την τελική εξέταση οτιδήποτε παρουσιάζεται ή αναφέρεται στις παραδόσεις. Κάποιο ποσοστό της ύλης δεν περιέχεται στην ελληνική βιβλιογραφία ή παρουσιάζεται με άλλη σειρά, για αυτό η παρακολούθηση συνίσταται ισχυρά.