Module 2 | Complexity, Recursive Programming, Arborescent data structures, Basic algorithms, Invariants and proof of correctness¶
Objective¶
By the end of this module, students will be able to:
- Use (and explain) spatial and temporal complexity concepts, along with the mathematical tools used to describe them (big-Oh/Omega/Theta notations and definitions).
- Analyse complex algorithm and derive their complexity
- Code a binary search
- Code the merge sort algorithm
- Explain the RAM model
- Use recursive programming
- Use arborescent data structures (trees, lists, …)
- Use invariants to show both correctness and complexity of an algorithm