Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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
- Host: GitHub
- URL: https://github.com/apulbere/algorithms
- Owner: apulbere
- Created: 2018-10-28T13:21:57.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2023-10-28T19:33:21.000Z (about 1 year ago)
- Last Synced: 2023-10-28T20:25:40.898Z (about 1 year ago)
- Topics: algorithms, computer-science, data-structures, dijkstra, graph, interview, interview-practice, java, java-21, junit5, kruskal, software-engineering, sorting-algorithms
- Language: Java
- Homepage:
- Size: 183 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
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)