Graphs are widely-used mathematical structures visualized by two basic components: nodes and edges. Graph algorithms are used to solve the problems of representing graphs as networks like airline flights, how the Internet is connected, or social network connectivity on Facebook.
2. Dynamic programming

Dynamic programming is used where we have problems, which can be divided into similar sub-problems, so that their results can be re-used. Mostly, these algorithms are used for optimization. Before solving the in-hand sub-problem, dynamic algorithm will try to examine the results of the previously solved sub-problems.
3. Searching and Sorting Algorithms

Searching algorithms are used to look for and retrieve the elements used in any data structure from that data structure itself. Sorting algorithms help arrange a list of data or an array of data into a particular order.