Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/apulbere/algorithms

data structures and algorithms
https://github.com/apulbere/algorithms

algorithms computer-science data-structures dijkstra graph interview interview-practice java java-21 junit5 kruskal software-engineering sorting-algorithms

Last synced: 25 days ago
JSON representation

data structures and algorithms

Awesome Lists containing this project

README

        

## Algorithms
Data structures and algorithms in Java with test

### Data Structures
* [simple linked list](src/main/java/com/apulbere/algorithms/structure/SimpleLinkedList.java)
* [queue with linked list](src/main/java/com/apulbere/algorithms/structure/LinkedListBasedQueue.java)
* [hash map](src/main/java/com/apulbere/algorithms/structure/HashMapWithLinearProbing.java)
* [binary tree](src/main/java/com/apulbere/algorithms/tree/BinaryTree.java)
* [binary search tree](src/main/java/com/apulbere/algorithms/tree/BinarySearchTree.java)
* [AVL tree](src/main/java/com/apulbere/algorithms/tree/AVLTree.java)
* [heap](src/main/java/com/apulbere/algorithms/structure/Heap.java)
* [disjoint-set / union-find](src/main/java/com/apulbere/algorithms/structure/DisjointSet.java)
* [disjoint-set / union-find with path compression](src/main/java/com/apulbere/algorithms/structure/DisjointSetOptimized.java)

### Sorting
* [merge sort with O(n log n) space complexity](src/main/java/com/apulbere/algorithms/sort/MergeSort.java)
* [merge sort with O(n) space complexity](src/main/java/com/apulbere/algorithms/sort/MergeSortOnSpaceComplexity.java)
* [merge sort for linked list](src/main/java/com/apulbere/algorithms/sort/MergeSortForLinkedList.java)
* [quick sort](src/main/java/com/apulbere/algorithms/sort/QuickSortLomutoPartition.java)
* [quick sort using middle index as pivot](src/main/java/com/apulbere/algorithms/sort/QuickSortLomutoPartitionMiddlePivot.java)
* [insert sort](src/main/java/com/apulbere/algorithms/sort/InsertSort.java)
* [selection sort](src/main/java/com/apulbere/algorithms/sort/SelectionSort.java)

### Graphs
* [adjacency list representation](src/main/java/com/apulbere/algorithms/graph/AdjacencyListGraph.java)
* [adjacency matrix representation](src/main/java/com/apulbere/algorithms/graph/AdjacencyMatrixGraph.java)
* [Dijkstra algorithm for shortest path with adjacency list](src/main/java/com/apulbere/algorithms/graph/AdjacencyListWeightedGraph.java)
* [Kruskal's Minimum Spanning Tree Algorithm](src/main/java/com/apulbere/algorithms/graph/mst/KruskalMinimumSpanningTree.java)
* [Prim's Minimum Spanning Tree Algorithm](src/main/java/com/apulbere/algorithms/graph/mst/PrimMinimumSpanningTree.java)