Skip to content
A repository for me to practice common CS principles in Java.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

Understanding CS principles through Java

This repository will act as a way for me to understand basic and complex computer science concepts through implementation of these different concepts.


I have realized that I lack the ability to apply some of the CS concepts that I have learned in CS 1 and 2. So this repository is here to help me practice implementing different CS concepts and which I am hoping will eventually lead me to a point where when I see a problem while working on a project I can easily recognize how that could be solved with the use/modification of some basic CS algorithms/data structures/etc.

Things to implement/practice...


Sorting Algorithms

  • Bubble Sort
  • Insertion Sort
  • Selection Sort
  • Merge Sort
  • Quick Sort
  • In-Place Quick Sort
  • Bucket/Radix Sort
  • Heap Sort
  • Counting Sort

Searching Algorithms

  • Linear Search
  • Binary Search
  • Breadth-First Iterative Search
  • Depth-First Search - Preorder (Recursive)
  • Depth-First Search - Inorder (Recursive)
  • Depth-First Search - Postorder (Recursive)


  • Dijkstra’s Algorithm
  • Floyd-Warshall
  • Traveling Salesman
  • A*
  • Bloom Filter
  • K-Way Merge

Data Structures

  • Simple Node
  • Linked Lists
  • Stack
  • Queue
  • Hash Table
  • Map
  • Binary Search Tree
  • Heap
  • Trie
  • Circular Queue
  • Vector
  • Priority Queue
  • Circular Buffer

List will continue to grow constantly

You can’t perform that action at this time.