My completed Java programming assignments from Princeton's Algorithms Part I and Part II courses on Coursera.
https://www.coursera.org/learn/algorithms-part1
https://www.coursera.org/learn/algorithms-part2
The 10 projects completed throughout the courses covered data structures, sorting, searching algorithms, and graph- and string-processing algorithms, such as:
- Weighted Quick-Union (Disjoint-Sets)
- Stacks and Queues
- Mergesort
- Priority Queues
- Balanced Search Trees (including 1d and 2d range searching)
- Hash Tables
- Undirected and Directed Graphs
- Minimum Spanning Trees
- Shortest Path Algorthims
- Maximum Flow and Minimum Cut Algorthims
- Radix Sort
- Tries
- Substring Search Algorithms
- Regular Expressions
- Data Compression
- Reductions
Each project directory contains:
- a README providing a brief overview of the project and the class files
- a *_specification.pdf file detailing the project description and requirements
- a src directory, containing the class files
- a test directory, containing files used to test the project
The lib directory contains the library required to run the projects.