Skip to content

SoraTohno/javaalgorithms

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Princeton Algorithms Course Solutions

My solutions to assignments from Princeton University's Algorithms course (Algorithms Part I). The course covers fundamental data structures and algorithms with applications in sorting, searching, graphs, and geometric problems.

Repository Structure

├── Prev Modules/
│   ├── Module 1/    # Introduction to Java
│   ├── Module 2/    # Union-Find & Percolation
│   ├── Module 4/    # Stacks & Queues
│   ├── Module 6/    # Sorting & Collinear Points
│   ├── Module 8/    # Priority Queues & 8-Puzzle
│   └── Module 11/   # Geometric Search & Kd-Trees
└── src/

Assignments

Module 1: Introduction to Java

  • HelloWorld.java - Basic "Hello, World" program
  • HelloGoodbye.java - Command-line argument handling
  • RandomWord.java - Reservoir sampling algorithm

Module 2: Union-Find

  • Percolation.java - Models percolation using weighted quick-union
  • PercolationStats.java - Monte Carlo simulation for percolation threshold estimation

Module 4: Stacks and Queues

  • Deque.java - Double-ended queue implementation using linked list
  • RandomizedQueue.java - Randomized queue with uniform random selection
  • Permutation.java - Client program for random k-permutations

Module 6: Sorting

  • Point.java - 2D point implementation with comparators
  • BruteCollinearPoints.java - Brute-force algorithm to find collinear points
  • FastCollinearPoints.java - Efficient sorting-based algorithm for collinear points

Module 8: Priority Queues

  • Board.java - N×N sliding puzzle board with Manhattan and Hamming distances
  • Solver.java - A* search algorithm to solve the 8-puzzle problem

Module 11: Geometric Search

  • PointSET.java - Brute-force 2D point set using SET data structure
  • KdTree.java - 2D tree for efficient range search and nearest-neighbor queries

Dependencies

All assignments use Princeton's standard library (algs4.jar) for:

  • Data structures (SET, MinPQ, WeightedQuickUnionUF)
  • Utilities (StdIn, StdOut, StdDraw, StdRandom, StdStats)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages