Hi! This is just some notes from my algo and not only practice. If you find some mistake please create an issue or pull request with fixes. Thanks!
- Binary heap.
- Set with iterators.
- Unordered map with iterators.
- Segment tree(sum) with 2N memory use.
- Segment tree with lazy propagation.
- DSU(disjoint set union).
- DSU with backup.
- Basic Bloom filter.
- Counting Bloom filter.
- Explicit treap.
- Implicit treap.
- Fenwick tree.
- Queue based on two stacks with template functor.
- Bidirectional list.
- Deque based on vector of blocks(without invalidation when container relocate).
- Cow-vector(relocate if and only if we want to change it and do not relocate if read-only).
- Intrusive list.
- LU decomposition.
- LDLT decomposition.
- Gauss method to find inverse matrix.
- Matrix transposition.
- Tridiagonal matrix algorithm.
- QR algorithm to find eigenvalues of matrix and eigenvectors of symmetric matrix(Givens rotation, Householder transformation).
- Lagrange interpolation.
- Hermit interpolation(with Newton interpolation).
- Spline interpolation.
- Least square method.
- 2D Lagrange.
- Value in point on 100 equallyspaced points.
- Newton method for solving nonlinear system.
- Power method to find max eigenvalue.
- Simpson integration.
- Count definite integral with five points method and adaptive steps.
- Count definite integral with Gauss-3 and adaptive steps.
- Solve integral equation with approximation kernel with degenerate kernel.
- Binary exponential.
- Eiler function.
- Fast finding nth fibonacci number modulo m.
- Fast finding nth fibonacci number modulo m on compilation time.
- Danilevskiy algo to find characteristic polynomial and Newton algo to find real roots.
- Dijkstra algorithm.
- LCA(less common ancestor) with binary lifts.
- Find all minimum spanning trees in O(ans * nmlog(n)).
- Parallel Kruskal.
- Check two trees for isomorphism(this is probability solver).
- Some examples.
- Vector and tests.
- Unique ptr.
- Shared and weak ptr.
- Any.
- FindIf(multithreading function to find all numbers in some range that satisfies some unary predicate).
- Reduce(multithreading function than compute result of some associative commutative binary predicate to all vector elements).
- Spinlock.
- Read-write lock.
- Buffered channel(class that provides synchronization between threads when store some values(in buffer)).
- Unbuffered channel(same as buffered channel but without buffer).
- Concurrent unordered map.
- Matrix multiplication algos(trivial and by block) with openmp.