Set of group and individual works in my course on Algorithms and Data Structures II at the University of Buenos Aires.
-
Abstract types of data and problems
-
Abstract data types: Linked list; Stack; Queue; Array; Binary tree; Set; Map.
-
Specification: description of problems using abstract types; modularization.
-
Recursion: axiomatization of functions through recursion; structural induction.
-
-
Design, data structures and algorithms
-
Design: concepts; modules; relationship implemented; representation invariant and abstraction function; commutative diagrams.
-
Algorithm complexity: Asymptotic analysis of the worst case and average case. Notation O (). Upper and lower dimensions.
-
Data Structures: simple representations for sequences, stacks and queues; simple representations for maps / sets: sequences, arrays, pointers, binary trees and binary search trees; more elaborate representations: balanced trees, AVL trees, open hashing, closed hashing, and tries; priority queues: heaps. Search and sort in secondary memory. Other data structures for dictionaries.
-
Sorting algorithms: Basic methods: insertion, selection. Elaborate methods: quicksort, mergesort, heapsort. Sorting algorithms for particular inputs.
-
-
Algorithmic Techniques
- Divide & Conquer.
- Generalization of functions.
- Elimination of Recursion: folding / unfolding; parameter immersion.
- Application of algorithms and data structures to other problems.