Algorithms

Build Java Contributions welcome License

This respository is a collection of various useful algorithms and data structures along with their Java implementations, intended for educational use. This is a work in progress, so some algorithms may not be included. All files that have been added have been tested extensively and should be accurate, readable, and efficient. Feel free to suggest any algorithms that you'd like to see implemented in the future. Don't hesitate to contact me with any questions, concerns, or feedback (my contact information is at the bottom of this file). If you found this repository helpful, I'd love to know :)

Table of Contents

Graph

Dynamic Programming

Sorting

Searching

Strings

Math/Number Theory

Computational Geometry

Optimization

Miscellaneous

Data Structures

Project Euler

Interesting math problems that can be solved computationally; full problem set available here. The Project Euler folder contains the full inventory of problems I've implemented with it's own table of contents here.

Google Code Jam

Competitive programming style problems from previous competitions. The Google Code Jam folder contains the full inventory of problems I've implemented with it's own table of contents here.

USACO

Algorithmic problems from past USA Computing Olympiad contests, check out the full problem database. The USACO folder contains the full inventory of problems I've implemented with it's own table of contents here.

Additional Resources

If you're interested in expanding your knowledge of algorithms, I've included a list of resources that you can take a look at.

Books

Some helpful books to formally introduce algorithims:

Courses

More courses avilable here

Websites

Websites that offer detailed explanations and complexity analyses for some of the above algorithims:

Online Judges

Competitive programming websites and online judges which offer a plethora of interesting algorithmic problems for all skill levels:

Developed By

Add me to Linkedin