This repo follows the topics of the following courses for students of Laurea triennale in Informatica at Università Ca' Foscari di Venezia:
[!NOTE] Anyhow, I took the liberty of adding extra content for a better comprehension of the course.
- Asymptotic notions
- Temporal and Spatial Complexity
- Solving occurrences
- Decision Problems and NP-Hardness
I will include the following data structures, their primitives, and some of their declinations:
- Trees
- Heap
- Priority Queues
- Tables
- Graphs
I do not include (for now), some basilar data structures and their implementations such as:
- Sets
- Array
- Stack
- Queues
- Lists and their declinations.
I will try and implement the algorithms to make immediately runnable.
- Sorting
- Dynamic Programming
- Greedy Algorithms
I will only use C++ and C to implement the pseudocode.
In fact, the content belongs directly
- Algorithms and Datastructures' Professor Alessandra Raffaeta' and Marcello Pelillo
- [DFI] C. Demetrescu, I. Finocchi, G.F. Italiano. Algoritmi e strutture dati. Seconda Edizione. McGraw-Hill, 2008.
- [CLRS] T. H. Cormen, C. E. Leiserson, R. L. Rivest, C. Stein. Introduction to algorithms 3/ed. McGraw-Hill, 2010.
- Solutions to CLRS exercise:
- Some students of Ca' Foscari University of Venice.
- Pareschi Chiara
- Femia Bertacco Giacomo
- Grazioso Matteo
- D'Attero Andrea
- Bertazzon Alice
- Simonato Niccolo'
- Scapin Filippo
- Campanelli Alessio
- Zanin Alessandro
I will add specific sections to give credit when due, but I recommend to buy the books and follow a university level course in order to understand these concepts better.
If you feel like any of the content is yours and/or should be removed, please contact me immediately.
[!WARNING] We do not take any credit for the content of this repo, as it might be misleading or (partly) wrong. This is due to the fact that is hard to keep track of a such a complex course and some notes might just be human errors.
I must mention a couple of resources which I found useful: