April Learning Carnival is here, Use code FEST10 for an extra 10% off

4.6

# Graph Theory Algorithms

A complete overview of graph theory algorithms in computer science and mathematics.

Updated on Apr, 2024

Language - English

Lectures -33

Duration -6.5 hours

4.6

Training 5 or more people ?

## Course Description

This course provides a complete introduction to Graph Theory algorithms in computer science.

Topics covered in these videos include: how to store and represent graphs on a computer; common graph theory problems seen in the wild; famous graph traversal algorithms (DFS & BFS); Dijkstra's shortest path algorithm (both the lazy and eager version); what a topological sort is, how to find one, and places it's used; learning about detecting negative cycles and finding shortest paths with the Bellman-Ford and Floyd-Warshall algorithms; discovering bridges and articulation points in graphs; understanding and detecting strongly connected components with Tarjan's algorithm, and finally solving the travelling salesman problem with dynamic programming.

# Who this course is for:

• Anybody ready for a deep dive into graph theory

### Goals

What will you learn in this course:

• Storage and representation of graphs (networks) on a computer
• Common graph theory problems
• Depth first search algorithm
• Dijkstra's algorithm
• Topological sort algorithm
• Shortest/longest path on a acyclic graph
• Bellman Ford's algorithm
• Floyd-Warshall all pairs shortest path algorithm
• Finding bridges/articulation points
• Finding strongly connected components (Tarjan's)
• Travelling salesman problem (TSP)

### Prerequisites

What are the prerequisites for this course?

• Exposure to computer science fundamentals (e.g: data structures, recursion, data types, classes, OOP)
• Some prior programming knowledge

## Curriculum

Check out the detailed breakdown of whatâ€™s inside the course

Graph Theory Algorithms
32 Lectures
• Graph Theory Introduction 14:24 14:24
• Problems in Graph Theory 09:59 09:59
• Depth First Search algorithm 10:39 10:39
• Breadth First Search algorithm 07:45 07:45
• Breadth First Search grid shortest path 16:50 16:50
• Dijkstra's shortest path algorithm 24:31 24:31
• Dijkstra's shortest path algorithm | source code 09:11 09:11
• Topological sort algorithm 14:04 14:04
• Shortest/longest path on a Directed Acyclic Graph (DAG) 10:14 10:14
• Bellman-Ford algorithm 15:16 15:16
• Floyd-Warshall all pairs shortest path algorithm 15:55 15:55
• Floyd-Warshall all pairs shortest path algorithm | source code 09:28 09:28
• Bridges & Articulation points 20:16 20:16
• Bridges & Articulation points | source code 09:22 09:22
• Tarjan's strongly connected components algorithm 17:00 17:00
• Tarjan's strongly connected components algorithm | source code 07:11 07:11
• Travelling Salesman problem 20:48 20:48
• Travelling Salesman problem | source code 13:32 13:32
• Existence of Eulerian path and circuits 09:40 09:40
• Eulerian path algorithm 15:34 15:34
• Eulerian path source code 08:17 08:17
• Max Flow Ford Fulkerson | Network Flow 13:05 13:05
• Max Flow Ford Fulkerson | source code 17:28 17:28
• Unweighted bipartite matching | Network flow 11:21 11:21
• Mice and Owls | Network Flow 08:27 08:27
• Elementary Math | Network Flow 10:44 10:44
• Edmonds Karp | Network Flow 09:31 09:31
• Edmonds Karp | Network Flow | Source Code 05:47 05:47
• Capacity Scaling | Network Flow 10:09 10:09
• Capacity Scaling | Network Flow | Source Code 06:23 06:23
• Dinic's Algorithm | Network Flow 11:39 11:39
• Dinic's Algorithm | Network Flow | Source Code 09:26 09:26

## Instructor Details

William Fiset

Hello!

My name is William, I am a software engineer for Google Maps stationed in Mountain View California. I am a former ACM-ICPC world finalist and avid problem solver looking to share my knowledge of computer programming and problem-solving.

I teach courses on Udemy because there exists a need to create high quality content about complex topics in computer science. The areas I focus on are data structures and algorithms; together they are the most important topics to master on the road to becoming an exemplary software engineer. Consider enrolling in one or more of the courses I have developed; they are designed for everyone, whether you are a beginner or advanced.

Yours sincerely,

William