#binary-search #binary-tree #collection #basic #table #bloom #bloom-filter

librualg

Collection of basic algorithms for everyday development

28 breaking releases

0.30.0 Jun 6, 2021
0.28.0 May 27, 2021
0.7.0 Mar 26, 2021
0.2.0 Oct 24, 2020

#2047 in Data structures

Download history 40/week @ 2024-09-19 26/week @ 2024-09-26

121 downloads per month

MIT license

120KB
2.5K SLoC

Collection of basic algorithms for everyday development

Build Status Rust crates.io Coverage Status

LIst of algorithms:


Search algorithms:

  • Binary search
  • Bloom Filter
  • Binary Tree

Segment Tree:

  • RSQ (Range Sum Query)
  • RMQMin (Range Minimum Query)
  • RMQMax (Range Maximum Query)

Sparse Tables:

  • SparseTableMin (Range Minimum Queries)
  • SparseTableMax (Range Maximum Queries)

String Algorithms:

  • Knuth–Morris–Pratt string-searching algorithm (or KMP algorithm)
  • Trie or prefix tree
  • Levenshtein distance (Metric of the difference between two symbol sequences)
  • Search for the minimum string period
  • Search distinct substrings
  • Suffix Array
  • The Longest Common Prefix
  • Search for a common substring (hashing)
  • Algorithm Aho Corasick. Search for a set of substring from the dictionary in the given string.

Combinatorics and enumeration algorithms

  • Permutation generation

Graph algorithms:

  • BFS (Breadth-First Search)
  • DFS (Depth-First Search)
  • Dijkstra
  • Connected components
  • Strongly connected components
  • Topologic sort (for DAG)
  • Kruskal's algorithm

Mathematics algorithms:

  • The Greatest Common Divisor (GCD)
  • Fast pow
  • Fast pow by module
  • Checking a Number for Simplicity (Fermat's test)

Data compression:

  • Huffman algorithm

Data Structure:

  • DSU (disjoint-set-union)

Sheduling:

  • Johnson's Algorithm For Scheduling

Example

extern crate librualg;
use librualg::*;

fn main(){
    let seq = [1, 2, 3, 3, 4, 5];
    assert_eq!(binary_search::upper_bound(&seq, &3), Some(3));
}

Dependencies

~330–560KB

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy