Java : Algorithms and Data Structure 
Algorithms and Data Structures implemented in Java
This is a collection of algorithms and data structures which I've implement over the years in my academic and professional life. The code isn't overly-optimized but is written to be correct and readable. The algorithms and data structures are well tested and, unless noted, are believe to be 100% correct.
Created by Justin Wetherell
Support me with a donation

- Integers
- to binary String
- using divide and modulus
- using right shift and modulus
- using BigDecimal
- using divide and double
- is a power of 2
- using a loop
- using recursion
- using logarithm
- using bits
- to English (e.g. 1 would return "one")
- Longs
- to binary String
- using divide and modulus
- using right shift and modulus
- using BigDecimal
- Complex
- addition
- subtraction
- multiplication
- absolute value
- polar value
- Get index of value in array
- Reverse characters in a string
- using additional storage (a String or StringBuilder)
- using in-place swaps
- using in-place XOR
- Reverse words in a string
- using char swaps and additional storage (a StringBuilder)
- using StringTokenizer and additional (a String)
- using split() method and additional storage (a StringBuilder and String[])
- using in-place swaps
- Is Palindrome
- using additional storage (a StringBuilder)
- using in-place symetric element compares
- Subsets of characters in a String
- Edit (Levenshtein) Distance of two Strings (Recursive, Iterative)
- Find in lexicographically minimal string rotation
- Find in lexicographically maximal string rotation