/codelibrary

:gem:Collection of algorithms and data structures

Primary LanguageJavaThe UnlicenseUnlicense

GitHub stars Build Status License

Collection of algorithms and data structures in C++ and Java

Data structures

  • Segment tree c++ java
  • Segment tree for sum with lowerBound operation java
  • Fenwick tree c++ java
  • Fenwick tree with extended operations java
  • Persistent tree java
  • Centroid decomposition c++ java
  • Heavy/light decomposition java
  • Link/cut tree java
  • Link/cut tree for connectivity query java
  • Link/cut tree for LCA query java
  • Binary heap java
  • Binary heap with change priority java
  • Disjoint sets c++ java
  • Treap with implicit key java
  • Treap as BST c++ java
  • k-d tree for point query c++ java
  • k-d tree for rectangular query java
  • R-tree java
  • Metric tree java
  • Quadtree java
  • Mergeable heap java
  • Queue with minimum c++ java
  • Sparse table for RMQ java

Graph algorithms

String algorithms

Sorting algorithms

Geometry algorithms

Optimization

  • Simplex algorithm java

Numerical algorithms

  • Long arithmetics c++
  • Fast Fourier transform (FFT) c++ java
  • Fast subset convolution java
  • Fast Walsh-Hadamar transform java
  • Karatsuba multiplication java
  • Newton interpolation java
  • Laguerre's root-finding algorithm c++

Number theory

Combinatorics

Linear algebra