These are assignments from a course on Algorithms I'm taking on Coursera. The course is divided into four parts. The exercises from parts 1 and 2 are in Ruby and the exercises from part 3 are in Python.
- Part 1 covers Big O notation, sorting and searching, divide and conquer and randomized algorithms.
- Part 2 covers graph search, shortest paths and data structures (heaps, balanced search trees, hash tables, bloom filters).
- Part 3 covers greedy algorithms (scheduling, minimum spanning trees, clustering) and dynamic programming (knapsack, sequence alignment, optimal search trees).
You can view the course here.