Skip to content

atalantus/Algorithms-and-Data-Structures-Archive

Repository files navigation

Algorithms and Data Structures Archive

Contents

    • Data Structure for operation and maintainance on disjoint sets over elements also often called Disjoint Set Union (DSU) or Union Find. O(α(n))
    • Efficient comparison-based sorting algorithm based on divide and conquer. O(n log n)
    • Depth First Search (DFS) is a graph traversal algorithm starting at a node and exploring one branch as far as possible before backtracking. O(|V| + |E|)
    • Breadth First Search (BFS) is a graph traversal algorithm starting at a node and explores all nodes at the present depth before moving on to the nodes at the next depth level. O(|V| + |E|)
    • Graph traversal algorithm on a directed graph resulting in a topological order where any predecessor of a node is ordered before any of it's postdecessors. O(|V| + |E|)
    • Constructs a MST of a connected graph by repeatedly adding the next shortest edge not already contained in the subgraph until we have a MST. O(|E| log |E|)
    • Constructs a MST of a connected graph by repeatedly adding the shortest edge to the subgraph which connects a node already in the subgraph to a node outside of it until we have a MST. O(|E| + |V| log |V|)
    • Finds the Single Source Shortest Path (SSSP) from one node to all other nodes on any graph with non-negative edge weights. O(|E| + |V| log |V|)
    • Finds the Single Source Shortest Path (SSSP) from one node to all other nodes on any graph. O(|V||E|)
    • Finds the All Pairs Shortest Path (APSP) for any pair of nodes on any graph. O(|V|^3)
    • Finds the maximum flow by repeatedly augmenting an initial flow along augmenting paths until no more augmenting paths exist.
    • Finds the maximum flow by successively adapting a preflow that saturates a cut until this preflow is a valid flow.
  • Technique of systematically iterating over all solution candidates until one satisfies the solution requirements.
  • Technique of approximating the optimal solution to a problem by iteratively choosing locally optimal solutions for its subproblems.
  • Technique of solving a problem by recursively dividing it into subproblems. After solving a subproblem it's solution is cached for later reuse in case the same subproblem comes up again.
  • Greatly simplifies the basic operations in comparison to euclidean geometry and allows for projective transformations.
    • Algorithm used for finding a specific value/element in an ordered interval range. O(log n)

Additional References

About

Personal archive of various algorithms and data structures

Topics

Resources

Stars

Watchers

Forks

Languages