Skip to content

AMGAS14/algorithms-lib

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 

Repository files navigation

algorithms-lib

Godel is a very light, modular and super easy to use modern algorithms framework for Java. It contains advanced algorithms that you can apply swiftly with one line of code and was primarily developed to back a worker manager tasks for various Java projects.

Godel was born because other frameworks in Java were very hard to get started with or just plain heavy (overhead wise) or just too opinionated.

Library Description

The need for efficient algorithms arises in nearly every area of computer science. But the type of problem to be solved, the notion of what algorithms are "efficient,'' and even the model of computation can vary widely from area to area. In this library , we will survey many of the techniques that apply broadly in the design of efficient algorithms, and study their application in a wide range of application domains and computational models.

This is a tentative list of topics that we wish be covered in the library.

Network flows (max flow and min-cost flow/circulation)

Data structures (fibonacci heaps, splay trees, dynamic trees)

Linear programming (structural results, algorithms)

Dealing with intractability: approximation algorithms (techniques for design and analysis)

Dealing with large data sets (compression, streaming algorithms, compressed sensing)

Computational geometry

Data Structures More Advanced Solutions to Basic Data Structuring Problems: Fibonacci Heaps. Van Emde Boas Priority Queues. Dynamic Data Structures for Graph Connectivity/Reachability.

Bit Tricks Word-level Parallelism. Transdichotomous Model. o(n \log n) Integer Sorting.

String Algorithms Rabin-Karp Fingerprinting Algorithm. Suffix Trees.

Maximum Flows Augmenting Paths and Push-Relabel Methods. Minimum Cost Flows. Bipartite Matching.

Linear Programming Formulation of Problems as Linear Programs. Duality. Simplex, Interior Point, and Ellipsoid Algorithms.

Online Algorithms Ski Rental. River Search Problem. Paging. The k-Server Problem. List Ordering and Move-to-Front.

Approximation Algorithms One Way of Coping with NP-Hardness. Greedy Approximation Algorithms. Dynamic Programming and Weakly Polynomial-Time Algorithms. Linear Programming Relaxations. Randomized Rounding. Vertex Cover, Wiring, and TSP.

Fixed-Parameter Algorithms Another Way of Coping with NP-Hardness. Parameterized Complexity. Kernelization. Vertex Cover. Connections to Approximation.

Parallel Algorithms PRAM. Pointer Jumping and Parallel Prefix. Tree Contraction. Divide and Conquer. Randomized Symmetry Breaking. Maximal Independent Set.

External-Memory Algorithms Accounting for the Cost of Accessing Data from Slow Memory. Sorting. B-trees. Buffer Trees. Cache-oblivious Algorithms for Matrix Multiplication and Binary Search.

Computational Geometry Convex Hull. Line-segment Intersection. Sweep Lines. Voronoi Diagrams. Range Trees. Seidel's Low-dimensional LP Algorithm.

Streaming Algorithms Sketching. Distinct and Frequent Elements.

About

A algorithms library in java

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages