algos 0.6.8

A collection of algorithms in Rust
Documentation
pub mod approx;
pub mod combinatorial;
pub mod dynamic;
pub mod error;
pub mod graph;
pub mod hashing;
pub mod randomized;
pub mod search;
pub mod security;
pub mod sort;
pub mod string;

pub use approx::{
    christofides_solve, fptas_subset_sum, goemans_williamson_solve, greedy_set_cover,
    johnson_maxsat_solve, local_ratio_solve, lp_rounding_solve, primal_dual_solve,
    ptas_knapsack_solve, vertex_cover_two_approx, Clause, Graph, Item, KnapsackInstance,
    LPSetCoverInstance, LocalRatioGraph, MaxCutGraph, MaxSatInstance, PDSetCoverInstance, Point,
    SetCoverInstance, SubsetSumInstance, TSPInstance,
};

pub use dynamic::{
    best_weighted_schedule, count_change_ways, kadane, lcs_length, lcs_sequence,
    levenshtein_distance, longest_increasing_subsequence, longest_increasing_subsequence_length,
    max_weighted_schedule, min_coins_for_change, min_merge_cost_knuth,
    optimal_matrix_chain_multiplication, reconstruct_optimal_merge, value_iteration,
    MarkovDecisionProcess, WeightedInterval,
};

pub use graph::{
    bellman_ford_shortest_paths, dijkstra_shortest_paths, edmond_karp_max_flow,
    floyd_cycle_detection, floyd_warshall_all_pairs_shortest_paths, ford_fulkerson_max_flow,
    hierholzer_eulerian_path, hungarian_method, johnson_all_pairs_shortest_paths,
    johnson_cycle_detection, kosaraju_strongly_connected_components, kruskal_minimum_spanning_tree,
    prim_minimum_spanning_tree, tarjan_strongly_connected_components, topological_sort,
    warshall_transitive_closure, BronKerbosch, Dinic, Graph as WeightedGraph, HopcroftKarp,
};

pub use hashing::{
    crc32::Crc32,
    cuckoo::{CuckooHashMap, CuckooHasher},
    fnv::{fnv32_hash, fnv32a_hash, fnv64_hash, fnv64a_hash, FnvHasher},
    jenkins::{jenkins_hash, JenkinsHasher},
    murmurhash::{murmur3_x64_128, murmur3_x86_32, MurmurHasher},
    perfect::PerfectHash,
    universal::UniversalHash64,
};

pub use randomized::{randomized_bfs_2sat, reservoir_sampling, SkipList};

pub use search::{bfs::Graph as BfsGraph, dfs::Graph as DfsGraph, fibonacci_search};

pub use security::{
    md5_digest, toy_dsa_generate_keypair, toy_dsa_sign, toy_dsa_verify, toy_generate_dsa_params,
    AesKey, AesKeySize, BlowfishKey, DHKeyGenConfig, DHParamsConfig, DiffieHellmanKeyPair,
    DiffieHellmanParams, DsaKeyPair, DsaParams, DsaSignature, Md5, RSAKeyGenConfig, RSAKeyPair,
    RSAPrivateKey, RSAPublicKey, Sha256, TwofishKey, TwofishKeySize, AES_BLOCK_SIZE,
    BLOWFISH_BLOCK_SIZE, BLOWFISH_MAX_KEY_BYTES, MD5_OUTPUT_SIZE, SHA256_OUTPUT_SIZE,
    TWOFISH_BLOCK_SIZE, TWOFISH_SUBKEY_COUNT,
};

pub use sort::{
    bubble_sort, bucket_sort, counting_sort, heap_sort, insertion_sort, merge_sort, quick_sort,
    radix_sort, selection_sort, shell_sort, HeapSortError, MergeSortBuilder,
};

pub use string::{
    boyer_moore_find_all, boyer_moore_find_first, kmp_find_all, kmp_find_first, longest_palindrome,
    rabin_karp_find_all, rabin_karp_find_first, suffix_array_find_all, suffix_array_find_first,
    z_algorithm_find_all, z_algorithm_find_first, AhoCorasick, Match, MatchConfig, RollingHash,
    SearchResult, SuffixArray, SuffixAutomaton, SuffixNode, SuffixTree,
};