This repository contains solutions for all code programming assignment I solved as part of the "Algorithms, Part I" cource offered by Princeton University at Courcera.
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.Goal: Write a program to estimate the value of the percolation threshold via Monte Carlo simulation. Check out the detailed specification.
Goal: Write a generic data type for a deque and a randomized queue. The goal of this assignment is to implement elementary data structures using arrays and linked lists, and to introduce you to generics and iterators. Check out the detailed specification.
Goal: Write a program to recognize line patterns in a given set of points. Check out the detailed specification.
Goal: Write a program to solve the 8-puzzle problem (and its natural generalizations) using the A* search algorithm. Check out the detailed specification.
Goal: 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). Check out the detailed specification.
All the assignments were implemented using Java.
IDE: IntelliJ 2019.2.4
Average Score: 100