## Search Algorithms

Search Algorithms

In this section, we will be learning about various search algorithms. As the name says it is a searching algorithm that is used for checking whether the given data is present in a collection of data or not.

**Linear Search****Binary Search (**Most used algorithm for search in real life and Competitive Programming.)

## Sorting Algorithms

## Graph Algorithms

In this series of the topic, we explore various algorithm and concept related to Graph Algorithms and their implementation in C++. Each topic consists of

**Notes, Curated Practice Problems, and YouTube**videos for Proper Understanding.**Basic Graph Theory****Graph Representation****Graph Traversal****Breadth-First Search****Depth First Search****Application of DFS****Connected Component, Articulation Points, Bridges****Cycle Detection****Application of BFS****Connected Component, Cycle Detection****Tree Algorithms****Different types of Tree Traversal****Diagonal of Tree****All Longest Paths****Counting Number of nodes in Subtree****Shortest Path Algorithms****Introduction to Shortest Path & Bellman-Ford Algorithms****Dijkstra Algorithm****Floyd-Warshall's Algorithm****Minimum Spanning Tree****Introduction to Spanning Tree, MST, Kruskal's Algorithm****Prim's Algorithm****Directed Graphs****Topological Sort****Acyclic Graph Problem Solving using Dynamic Programming****Successor Paths and Cycle Detection using Floyd's Algorithm in DAG****Strongly Connected Components****Tree Queries****Finding K-th Ancestors****Subtree and Path Queries****Lowest Common Ancestors****Flood-fill Algorithm****Biconnected Components****Hamiltonian Path****Maximum Flow****Minimum Cost Maximum Flow****Min-cut**

## String Algorithms

**Basics of String Manipulation****String Searching****Z Algorithm****Manachar's Algorithm**