Design and Analysis of Algorithms

Home / Undergraduate Studies / Courses / C semester / Design and Analysis of Algorithms

C306 Design and Analysis of Algorithms

Professor: Dimitris KOUKOPOULOS

Introductory concepts. Representation of algorithms. Data representation: graphs, trees, queues, stacks. Algorithms vs. trees ( tree traversing). Algorithms vs. queues (scheduling algorithms). Algorithms vs. stacks ( recursive algorithms). Algorithms vs. heap (HeapSort). Algorithmic problems classification (P vs. NP). Introduction to heuristic algorithms. Complexity analysis of searching algorithms and HeapSort algorithm (worst-case, average). Basic techniques for design and analysis of algorithms: balancing, divide-and-conquer (analysis, examples – QuickSort, binary searching, mergesort) and greedy techniques (general analysis, examples-task scheduling problem-Knapsack problem-Travelling Salesman problem). Graph traversal: breadth-first search, depth-first search. Dynamic programming (Bellman principle, examples). Survey of current research papers. Laboratory: design of algorithms and development of applications in programming environments with emphasis in digital cultural content management.

Companions

  1. Βιβλίο [13898]: ΣΧΕΔΙΑΣΜΟΣ ΑΛΓΟΡΙΘΜΩΝ, JON KLEINBERG, EVA TARDOS Λεπτομέρειες
  2. Βιβλίο [68370088]: Ανάλυση και Σχεδίαση Αλγορίθμων, 3η Έκδοση, Levitin Anavy, Mάνος Ρουμελιώτης (επιμέλεια) Λεπτομέρειες