algorithms-stanford icon indicating copy to clipboard operation
algorithms-stanford copied to clipboard

This repo holds my solutions (in python) for the programming assignments of the Coursera course Algorithms - Design and Analysis (Stanford)

Coursera - Algorithms Design and Analysis (Stanford University)

This repo holds my solutions (in Python 3) to the programming assignments for the Coursera class - Algorithms: Design and Analysis of Stanford University.

I tried to follow the TDD (Test Driven Development) workflow during this course when applicable (we 're writing python here, so that's one more reason to do extensive testing!) so there exist unittests demonstrating the functionality of the modules-classes that were developed.

It is not required for our programs that were developed for each assignment to be submitted (in fact, even if we wanted to submit there is no such form!) - we only need to provide the final answer. I won't paste the plain result of each assignment here, so one should at least run the main module of each assignment to get the result. Hopefully, he will have a look at the algorithm :)

Part 1:
  • Programming Assignment 1 - Inversions Calculation
  • Programming Assignment 2 - QuickSort
  • Programming Assignment 3 - Karger's min cut
  • Programming Assignment 4 - Strongly Connected Components
  • Programming Assignment 5 - Dijkstra's Shortest Paths
  • Programming Assignment 6.1 - 2SUM range
  • Programming Assignment 6.2 - Median Maintenance
Part 2:
  • Programming Assignment 1 - Greedy Algorithms - Prim's MST
  • Programming Assignment 2 - Clustering - Kruskal's MST
  • Programming Assignment 3 - Dynamic Programming - Knapsasck
  • Programming Assignment 4 - Dynamic Programming - Multiple Shortest Paths
  • Programming Assignment 5 - NP Completeness - Travelling Salesman Problem (TSP) - (In Progress)