Full Princeton Algorithms Part 1 Coursera course including assignments and code solutions.
https://es.coursera.org/learn/algorithms-part1
This course covers the essential information that every serious programmer needs to know about algorithms and data structures, with emphasis on applications and scientific performance analysis of Java implementations. Part I covers elementary data structures, sorting, and searching algorithms. Part II focuses on graph- and string-processing algorithms.
- Percolation - Write a program to estimate the value of the percolation threshold via Monte Carlo simulation.
- Queues - Write a generic data type for a deque and a randomized queue.
- Collinear - Write a program to recognize line patterns in a given set of points.
- 8puzzle - Write a program to solve the 8-puzzle problem (and its natural generalizations) using the A* search algorithm.
- Kd-Trees - Write a data type to represent a set of points in the unit square (all points have x- and y-coordinates between 0 and 1) using a 2d-tree to support efficient range search (find all of the points contained in a query rectangle) and nearest-neighbor search (find a closest point to a query point). 2d-trees have numerous applications, ranging from classifying astronomical objects to computer animation to speeding up neural networks to mining data to image retrieval.