This is a library of various algorithms that are used in competitive programming.
disjoint_set_union.cpp
Floyd_cycle_detection.cpp
[Bellman_Ford/BellmanFord.cpp] (Algorithm to find the single source shortest path in a graph with or without negative edges and negative weight cycle)
Merge Sort merge_sort.cpp
Heap Sort heap_sort.cpp
Insertion Sort insertion_sort.cpp
Bubble Sort bubble_sort.cpp
Selection Sort selection_sort.cpp
Rabin Karp Algorithm rabin_karp.cpp
Counting Number of different substrings in a string count_substr.cpp
Z Algorithm z-algorithm.cpp
Manacher Algorithm manacher.cpp (Algorithm to find longest palindromic substring)