NB: All data structures implement from scratch without using an existing structure, and I intend to reuse them in the algorithms
- You can see my past Problem Solver
- Big O notation
- Constant - (1)
- Linear - (n)
- Logarithmic - (log n)
- Quadratic (n^2)
- Exponential (2^n)
- Array
- Graphs
- Linked List
- Doubly Linked List
- Queue
- Stack
- Hash Table
- Tree
- Binary Search Tree
- Graph
- Min Heap
- Max Heap
- Priority Queue
- AVL Tree
- Red-Black Tree
- Segment Tree
- Fenwick Tree
- Disjoint Set
- Bloom Filter
- LRU Cache - Least Recently Used (LRU) cache
-
Sorting:
-
Radix Sort
-
Bucket Sort
-
Heap Sort
-
Shell Sort
-
Counting Sort
-
Trees/Graphs:
-
Kruskal’s Algorithm
-
Dijkstra Algorithm
-
Bellman-Ford Algorithm
-
Floyd-Warshall Algorithm
-
Detect Cycle
-
Prim’s Algorithm
-
Topological Sorting
-
Articulation Points
-
Bridges
-
Eulerian Path and Eulerian Circuit
-
Hamiltonian Cycle
-
Strongly Connected Components
-
Travelling Salesman Problem
- Bit Manipulation - set/get/update/clear bits, multiplication/division by two, make negative etc.
- Binary Floating Point - binary representation of the floating-point numbers.
- Factorial
- Fibonacci Number - classic and closed-form versions
- Prime Factors - finding prime factors and counting them using Hardy-Ramanujan's theorem
- Primality Test (trial division method)
- Euclidean Algorithm - calculate the Greatest Common Divisor (GCD)
- Least Common Multiple (LCM)
- Sieve of Eratosthenes - finding all prime numbers up to any given limit
- Is Power of Two - check if the number is power of two (naive and bitwise algorithms)
- Pascal's Triangle
- Complex Number - complex numbers and basic operations with them
- Radian & Degree - radians to degree and backwards conversion
- Fast Powering
- Horner's method - polynomial evaluation
- Matrices - matrices and basic matrix operations (multiplication, transposition, etc.)
- Euclidean Distance - distance between two points/vectors/matrices
- Integer Partition
- Square Root - Newton's method
- Liu Hui π Algorithm - approximate π calculations based on N-gons
- Discrete Fourier Transform - decompose a function of time (a signal) into the frequencies that make it up
- Polynomial Hash - rolling hash function based on polynomial
- Rail Fence Cipher - a transposition cipher algorithm for encoding messages
- Caesar Cipher - simple substitution cipher
- Hill Cipher - substitution cipher based on linear algebra
- NanoNeuron
- k-NN
- k-Means
- Seam Carving
- Weighted Random