Skip to content

alexprut/Algo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation





Classic Algorithms and Data Structures implemented in Java

Code Style MIT Build Status GitHub release Maven Central


Algorithms

Algorithm Worst-case time complexity Average-case time complexity Best-case time complexity Auxiliary space complexity
Insertion Sort ฮ˜(n^2) ฮ˜(n^2) O(n) -
BubbleSort O(n^2) O(n^2) O(n) -
MergeSort ฮ˜(nlogn) ฮ˜(nlogn) ฮ˜(nlogn) -
HeapSort ฮ˜(nlogn) - - -
QuickSort ฮ˜(n^2) ฮ˜(nlogn) ฮ˜(nlogn) -
CountingSort ฮ˜(k + n) ฮ˜(k + n) ฮ˜(n) ฮ˜(n)
RadixSort ฮ˜(d(k + n)) ฮ˜(d(k + n)) ฮ˜(n) -
Floyd-Warshall ฮ˜(V^3) ฮ˜(V^3) ฮ˜(V^3) ฮ˜(V^2)
Kruskal O(|E|log|V|) - - -
Prim O(|E| + |V|log|V| - - -
Bellmanโ€“Ford ฮ˜(|E||V|) - - ฮ˜(V)
Dijkstra O(|E| + |V|log|V|) - - -
Maximum SubArray ฮ˜(n) ฮ˜(n) ฮ˜(n) ฮ˜(1)
Knuth-Morris-Pratt ฮ˜(n + m) ฮ˜(n) ฮ˜(n) ฮ˜(n)
Rabin-Karp ฮ˜((n - m + 1)m) ฮ˜(n) ฮ˜(n) -
Greatest common divisor (GCD) - - - -
Binary Search O(nlogn) O(nlogn) O(1) ฮ˜(1)
Breadth First Search (BFS) O(|E|+|V|) O(|E|+|V|) - -
Depth First Search (DFS) O(|E|+|V|) O(|E|+|V|) - -
Topological Sort (DFS) O(|E|+|V|) O(|E|+|V|) - -
Longest Increasing Subsequence (LIS) ฮ˜(n^2) - - ฮ˜(n)
Longest Common Subsequence (LCS) ฮ˜(n^2) - - ฮ˜(n^2)

Data Structures

Data Structure Methods
Max Heap max() - ฮ˜(1), extractMax() - O(nlogn), increaseKey() - O(logn), insert() - O(logn), heapify() - O(logn), heapsort() - O(nlogn)
Min Heap min() - ฮ˜(1), extractMin() - O(nlogn), insert() - O(logn), heapify() - O(logn), heapsort() - O(nlogn)
MinMax Heap min() - ฮ˜(1), max() - ฮ˜(1), extractMin() - O(nlogn), extractMax() - O(nlogn), insert() - O(logn), heapify() - O(logn)
Disjoint Set makeSet() - ฮ˜(1), findSet() - ฮ˜(1), union() - ฮ˜(1)
Trie insert() - O(|s|), search() - O(|s|), searchPrefix() - O(|s|), remove() - O(|s|), size() - O(1)
Stack push() - ฮ˜(1), pop() - ฮ˜(1), empty() - ฮ˜(1), size() - ฮ˜(1), peek() - ฮ˜(1)
Queue enqueue() - ฮ˜(1), dequeue() - ฮ˜(1), empty() - ฮ˜(1), size() - ฮ˜(1)
Binary Search Tree insert() - O(n), search() - O(n), delete() - O(n), contains() - O(n), minimum() - O(n), maximum() - O(n), size() - ฮ˜(1), successor() - O(logn), predecessor() - O(logn), preOrderVisit() - O(n), inOrderVisit() - O(n), postOrderVisit() - O(n)
Double Linked List insertFront() - ฮ˜(1), removeFront() - ฮ˜(1), insertBack() - ฮ˜(1), removeBack() - ฮ˜(1), head() - ฮ˜(1), size() - ฮ˜(1), search() - ฮ˜(n), remove() - ฮ˜(n)
Linked List insertFront() - ฮ˜(1), removeFront() - ฮ˜(1), head() - ฮ˜(1), size() - ฮ˜(1), search() - ฮ˜(n), remove() - ฮ˜(n)
Skip List insert() - ฮ˜(logn), remove() - ฮ˜(logn), search() - O(logn), size() - ฮ˜(1)
Graph buildAdjacencyMatrix() - ฮ˜(|V|^2), buildAdjacencyList() - ฮ˜(|V| + |E|), addEdge() - ฮ˜(1)
Red-Black Tree insert() - O(logn), search() - O(logn), delete() - O(logn), minimum() - O(logn), maximum() - O(logn), successor() - O(logn), predecessor() - O(logn)
Interval Tree insert() - O(logn), search() - O(logn), find() - O(logn), findAll() - O(n), delete() - O(logn), minimum() - O(logn), maximum() - O(logn), successor() - O(logn), predecessor() - O(logn)
Segment Tree build() - O(n), update() - O(logn), search() - O(logn)
AVL Tree insert() - O(logn), search() - O(logn), delete() - O(logn), minimum() - O(logn), maximum() - O(logn), successor() - O(logn)
B-Tree insert() - O(th), search() - O(th), delete() - O(th), successor() - O(th), predecessor() - O(th)
QuadTree insert() - O(logn), search() - O(logn), delete() - O(logn), size() - ฮ˜(1)
Fibonacci Heap insert() - O(1), minimum() - O(1), extractMin() - O(logn), decreaseKey() - O(1), delete() - O(logn)
Merkle Tree build() - O(n), verify() - O(logn), getProofPath() - O(logn)
Bloom Filter search() - O(k), insert() - O(k)

Add to your build

To add a dependency using Gradle, use the following:

implementation 'com.alexprut:algo:v0.4.0'

To add a dependency using Gradle Kotlin DSL:

implementation("com.alexprut:algo:v0.4.0")

To add a dependency using Maven:

<dependency>
  <groupId>com.alexprut</groupId>
  <artifactId>algo</artifactId>
  <version>v0.4.0</version>
</dependency>

Requirements

  • Gradle 8
  • Java 11

Build

./gradlew clean build

Test

./gradlew test

Formatting style

./gradlew goJF
./gradlew verGJF

Generate Changelog

git-chglog v1.0.0..v2.0.0

License

Licensed under MIT.

About

๐Ÿ’ Classic Algorithms and Data Structures implemented in Java

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages