AlgorithmsPartI-Princeton
Code for programming assignments from Algorithms Part I (https://class.coursera.org/algs4partI-004).
Requires the stdlib.jar and algs4.jar to run, which can be retrieved from the course site.
Week 1 - UnionFind / Percolation
- Percolation.java - A model for the percolation problem, determines if a 2d system of open / closed sites percolates from top to bottom.
- PercolationStats.java - Generates statistics using the percolation model.
Week 2 - Queues, Stacks and Bags
- Deque.java - A generic double ended queue implementation, double-linked list based.
- RandomizedQueue.java - A generic random queue implementation, array based.
- Subset.java - Prints n number of random strings provided through standard input.
Week 3 - Collinear Points
- Point.java - A simple point class.
- Brute.java - A n^4 algorithm for calculating 4 collinear points.
- Fast.java - A fast implementation for finding collinear points.
Week 4 - 8 Puzzle
- Board.java - Represents a sliding puzzle board.
- Solver.java - Uses A* and to find solution to the puzzle board.
Week 5 - KdTree
- PointSET.java - A set of points on a 2D Euclidian plane, some simple function like nearest neighbor search and range search using a brute force approach.
- KdTree.java - Uses a 2d tree to more efficiently perform functions such as nearest neighbor search and range search.