Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

131 Commits

Repository files navigation

Algorithms & Data Structures

A collection of algorithm and data structure implementations in Java, along with code generation helpers for web frameworks. All algorithm methods are annotated with time and space complexity via @InterestingAlgorithm.

Contents

Core Data Structures

CategoryPackageHighlights
Linked ListslinkedlistDoubly linked list, LRU cache (HashMap + linked list), singly linked list operations (reverse, cycle detection, intersection detection, merge sorted lists)
TreestreesBST operations, tree traversals (pre/in/post-order, level-order, iterative + recursive), sorted array/list to BST, trie with prefix search, height/balance checks
HeapsheapMax heap (tree-based), min heap (array-based)
QueuesqueuesMin priority queue (binary heap-backed), circular buffer
SetssetsDisjoint set / union-find with path compression and union by rank
GraphsgraphGraph, vertex, edge representations

Algorithm Categories

CategoryPackageHighlights
Graph AlgorithmsgraphBFS, DFS, Dijkstra's shortest path, Bellman-Ford, topological sort, cycle detection, Kruskal's MST, Prim's MST, strongly connected components (Kosaraju's)
Dynamic Programmingdp0/1 knapsack, unbounded knapsack, coin change (min coins + ways), longest increasing subsequence, edit distance, matrix chain multiplication, rod cutting, longest palindromic substring, Kadane's max subarray, unique paths, min path sum
BacktrackingbacktrackingN-queens, generate parentheses, subsets (power set), permutations, combination sum, word search, sudoku solver
Sliding WindowslidingwindowMax sum subarray of size K, longest substring without repeating chars, minimum window substring, longest substring with K distinct chars, sliding window maximum
Two PointerstwopointersTwo sum, three sum, container with most water, trapping rain water, remove duplicates in sorted array
Stack ProblemsstackproblemsValid parentheses, evaluate reverse Polish notation, daily temperatures, largest rectangle in histogram, min stack (O(1) getMin)
Binary SearchbinarysearchSearch rotated array, find first/last position, search 2D matrix, find peak element, integer sqrt, find min in rotated sorted array
SortingsortQuicksort, mergesort, introsort, heapsort, bubblesort, selection sort, radix sort
ArraysarraysSpiral matrix, merge sorted arrays, interval merging, equilibrium indices, permutations, combinations, binary search, two-number sum
StringsstringsPalindrome detection, longest common substring/subsequence, anagram detection, string reversal, diff
WordswordsSoundex, rhyming detection, syllable splitting, text justification, Roman numeral conversion, N-grams, word frequency
MathmathArithmetic expression evaluation, sieve of Eratosthenes, prime factorization, combinatorics (nCk, Catalan, Pascal's triangle), quadratic solver, GCD/LCM, atoi/itoa
Financemath/financeStock profit (single/multiple transactions), peak/valley detection, volatility
SequencessequenceHamming distance, Levenshtein distance, Needleman-Wunsch scoring, Hirschberg alignment
Bit ManipulationbitsBitwise operations, bitmap, bitset
MiscmiscFibonacci, Excel column conversions, FizzBuzz, climb stairs (DP), Unix path simplification, version comparison, peak element
GraphicsgraphicsImage erosion/dilation, Manhattan distance, color averaging, paint fill, convex hull
GamesgamesSudoku generator, Game of Life, Reversi, word square, crossword, Rubik's cube

Code Generation (gen/)

Scaffolding helpers for web frameworks, generating CRUD application boilerplate:

  • Rails (gen/rails) - Implemented
  • Spring MVC (gen/springmvc) - Partial
  • MEAN (gen/mean) - Partial

Language

Java (no build system — compile with javac)

Running Tests

# Compile (excluding alg/io which requires Apache Commons IO)
javac -d build $(find alg test -name "*.java"! -path "*/io/*"! -name "WebTest.java"! -name "WordTest.java")# Run tests
java -cp build test.alg.misc.MiscUtilsTest
java -cp build test.alg.tree.TreeTest
java -cp build test.alg.sort.SortTest
java -cp build test.alg.math.MathTest
java -cp build test.alg.arrays.ArraysTest

About

Large collection of (mostly) well known algorithms and code generation functions for web applications

Resources

Stars

1 star

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages