Awesome Open Source
Awesome Open Source


A collection of common algorithms and data structures with source code in Java.


This repository uses Gradle. While you don't need it, it will make everything much easier. You don't need to install Gradle as I added the wrapper. Testing is all done with JUnit 5.

Dependencies Used

  • JUnit 5
  • Apache Commons Lang
  • JBlas

Using Gradle

To check if everything is correct, run this command:

./gradlew check

This checks for lots of things, like running the tests, check for compile errors, check for correct google java style guide, etc. If you want to run a single file, then go to the build.gradle file and add this line at the bottom.

mainClassName = 'sorting.bubblesort.BubbleSort'

and run

./gradlew run

Replace sorting.bubblesort.BubbleSort with the file you want to run. Make sure you exclude the part.

Source Code

Bit Manipulation


Data Structures

Min Priority Queues


Binary Search Trees


Dynamic Programming


Graph Theory



Neural Networks



This repository is licensed under the MIT license.

Alternatives To Algorithms Java
Select To Compare

Alternative Project Comparisons
Related Awesome Lists
Top Programming Languages
Top Projects

Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
Python3 (797,346
Java (385,725
Cpp (236,448
Algorithms (37,401
Tree (20,482
Ai (18,772
Neural Network (15,419
Data Structures (9,512
Computer Science (2,217
Trie (1,469
Graph Algorithms (983
Sorting Algorithms (771
Interview Preparation (725
Dynamic Programming (710
Bit Manipulation (134
Explanation (100
Tested (22