Data Structures and Algorithms in Java

Full version of library on github

Collection of algorithms and data structures in Java written by indy256

The following topics are covered:

  • Trees: segment tree, Fenwick tree, k-d tree, R-tree, metric tree, quadtree, persistent tree, link/cut tree, binary heap, disjoint-sets, treap

  • Graph algorithms: shortest paths, maximum flow, maximum matching, spanning tree, connectivity, biconnectivity, LCA

  • String algorithms: suffix tree, suffix automata, suffix array, trie, Aho-Corasick algorithm, Knuth-Morris-Pratt algorithm, Z-function, hashing, parsing

  • Sorting algorithms: quick-, merge-, heap-, bubble-, selection-, insertion-, counting-, radix-sorting; Kth order statistic

  • Geometry algorithms: segments/lines/circles intersection, point in polygon query, convex hull, closest/furthest pair of points

  • Combinatorics: permutations, combinations, arrangements, partitions

  • Other: big numbers multiplication via fast Fourier transform, simplex algorithm



Don't have an account? Register here.


Create your free account

Already have an account? Sign in here.