Algorithms Course - Graph Theory Tutorial from a Google Engineer

preview_player
Показать описание
This full course provides a complete introduction to Graph Theory algorithms in computer science. Knowledge of how to create and design excellent algorithms is an essential skill required in becoming a great programmer.

You will learn how many important algorithms work. The algorithms are accompanied by working source code in Java to solidify your understanding.

⭐️ Course Contents ⭐️
⌨️ (0:00:00) Graph Theory Introduction
⌨️ (0:13:53) Problems in Graph Theory
⌨️ (0:23:15) Depth First Search Algorithm
⌨️ (0:33:18) Breadth First Search Algorithm
⌨️ (0:40:27) Breadth First Search grid shortest path
⌨️ (0:56:23) Topological Sort Algorithm
⌨️ (1:09:52) Shortest/Longest path on a Directed Acyclic Graph (DAG)
⌨️ (1:19:34) Dijkstra's Shortest Path Algorithm
⌨️ (1:43:17) Dijkstra's Shortest Path Algorithm | Source Code
⌨️ (1:50:47) Bellman Ford Algorithm
⌨️ (2:05:34) Floyd Warshall All Pairs Shortest Path Algorithm
⌨️ (2:20:54) Floyd Warshall All Pairs Shortest Path Algorithm | Source Code
⌨️ (2:29:19) Bridges and Articulation points Algorithm
⌨️ (2:49:01) Bridges and Articulation points source code
⌨️ (2:57:32) Tarjans Strongly Connected Components algorithm
⌨️ (3:13:56) Tarjans Strongly Connected Components algorithm source code
⌨️ (3:20:12) Travelling Salesman Problem | Dynamic Programming
⌨️ (3:39:59) Travelling Salesman Problem source code | Dynamic Programming
⌨️ (3:52:27) Existence of Eulerian Paths and Circuits
⌨️ (4:01:19) Eulerian Path Algorithm
⌨️ (4:15:47) Eulerian Path Algorithm | Source Code
⌨️ (4:23:00) Prim's Minimum Spanning Tree Algorithm
⌨️ (4:37:05) Eager Prim's Minimum Spanning Tree Algorithm
⌨️ (4:50:38) Eager Prim's Minimum Spanning Tree Algorithm | Source Code
⌨️ (4:58:30) Max Flow Ford Fulkerson | Network Flow
⌨️ (5:11:01) Max Flow Ford Fulkerson | Source Code
⌨️ (5:27:25) Unweighted Bipartite Matching | Network Flow
⌨️ (5:38:11) Mice and Owls problem | Network Flow
⌨️ (5:46:11) Elementary Math problem | Network Flow
⌨️ (5:56:19) Edmonds Karp Algorithm | Network Flow
⌨️ (6:05:18) Edmonds Karp Algorithm | Source Code
⌨️ (6:10:08) Capacity Scaling | Network Flow
⌨️ (6:19:34) Capacity Scaling | Network Flow | Source Code
⌨️ (6:25:04) Dinic's Algorithm | Network Flow
⌨️ (6:36:09) Dinic's Algorithm | Network Flow | Source Code

--

Рекомендации по теме
Комментарии
Автор

I feel smarter just by clicking on this video

TheAIGuy
Автор

OMG, thank to Youtube for recommending this video to me while I'm studying it for 3 days. You guys really save my life.

CuongHut
Автор

This is crazy good and somewhat demanding video to comprehend
for the viewers. Thank you so much!

iliyaniliev
Автор

I got interested on this when I saw a presentation which explained briefly why graphs are fast to find data. Now this is here, great, going to watch it all.

ProgrammingwithPeter
Автор

The way the graphics are done with black backgrounds and colorful diagrams and colored texts makes this video incredibly engaging, fun and addicting to learn.

kinghadu
Автор

I keep coming back to this for refreshers while preparing for my interviews. Such a wonderful resource.

maksymshvernenko
Автор

⭐️ Course Contents ⭐️
⌨️ (0:00:00) Graph Theory Introduction
⌨️ (0:13:53) Problems in Graph Theory
⌨️ (0:23:15) Depth First Search Algorithm
⌨️ (0:33:18) Breadth First Search Algorithm
⌨️ (0:40:27) Breadth First Search grid shortest path
⌨️ (0:56:23) Topological Sort Algorithm
⌨️ (1:09:52) Shortest/Longest path on a Directed Acyclic Graph (DAG)
⌨️ (1:19:34) Dijkstra's Shortest Path Algorithm
⌨️ (1:43:17) Dijkstra's Shortest Path Algorithm | Source Code
⌨️ (1:50:47) Bellman Ford Algorithm
⌨️ (2:05:34) Floyd Warshall All Pairs Shortest Path Algorithm
⌨️ (2:20:54) Floyd Warshall All Pairs Shortest Path Algorithm | Source Code
⌨️ (2:29:19) Bridges and Articulation points Algorithm
⌨️ (2:49:01) Bridges and Articulation points source code
⌨️ (2:57:32) Tarjans Strongly Connected Components algorithm
⌨️ (3:13:56) Tarjans Strongly Connected Components algorithm source code
⌨️ (3:20:12) Travelling Salesman Problem | Dynamic Programming
⌨️ (3:39:59) Travelling Salesman Problem source code | Dynamic Programming
⌨️ (3:52:27) Existence of Eulerian Paths and Circuits
⌨️ (4:01:19) Eulerian Path Algorithm
⌨️ (4:15:47) Eulerian Path Algorithm | Source Code
⌨️ (4:23:00) Prim's Minimum Spanning Tree Algorithm
⌨️ (4:37:05) Eager Prim's Minimum Spanning Tree Algorithm
⌨️ (4:50:38) Eager Prim's Minimum Spanning Tree Algorithm | Source Code
⌨️ (4:58:30) Max Flow Ford Fulkerson | Network Flow
⌨️ (5:11:01) Max Flow Ford Fulkerson | Source Code
⌨️ (5:27:25) Unweighted Bipartite Matching | Network Flow
⌨️ (5:38:11) Mice and Owls problem | Network Flow
⌨️ (5:46:11) Elementary Math problem | Network Flow
⌨️ (5:56:19) Edmonds Karp Algorithm | Network Flow
⌨️ (6:05:18) Edmonds Karp Algorithm | Source Code
⌨️ (6:10:08) Capacity Scaling | Network Flow
⌨️ (6:19:34) Capacity Scaling | Network Flow | Source Code
⌨️ (6:25:04) Dinic's Algorithm | Network Flow
⌨️ (6:36:09) Dinic's Algorithm | Network Flow | Source Code

r_u_p_d
Автор

I like the the parts you provides real word applications on each algorithm/graph. It helps a lot when solve problem described as a real problem.

weiyao
Автор

Thank you so much William, for your kind attention to details. I did not receive any teaching on Graph Theory in the 90s when I thought I had graduated. Your patience has made it possible for me to understand a topic that has tremendous value, I believe both for other advanced topics and implementing real-world solutions right away! Thank you, again William!

sdsa
Автор

this guy is awesome..He covered almost all the concepts in Graph... really worth it...

prakashg
Автор

Got my DS Exam in few days which extensively covers Graphs. I needed this. Thanks.

kunaljoshi
Автор

My search history be like:
3 min memes - 5 min funny videos - 6 HOURS+ GRAPH THEORY

anurandutta
Автор

This is really phenomenal work. You guys are doing wonderful work. Thanks a lot♥️

akshaykumar-ionu
Автор

Finest selfless work in history of computer science ever!
thank you sir, you will be remembered for ages to come!

batmanarkhamcity
Автор

Love this man, really. Very good presentation of such a complex topic. Thanks for doing this William!

pedrolopes
Автор

OMG! Glad to see your here William, I owe my career as a developer to you from your python lectures.

KotaAvengers
Автор

Really appreciate this type of content. Very useful. Thanks

redhood
Автор

Amazing !!!
That's what I wanted. All graph algorithms in one place.

chetanraikwar
Автор

great video, very easy to follow!

just wanted to say, at 49:08 where having separate x, y, z queues is suggested in order to avoid using a coordinate wrapper like struct coord { int x, y, z } that has to be packed/unpacked - keeping everything in one queue will preserve memory locality (sequential accesses in the same area of memory, likely in the same cache read), while having to access 3 different queues every iteration will likely be a performance hit as they cause cache misses (which, even if they're contiguous, would be inevitable above a certain number of vertices), and quite possibly be worse than packing/unpacking a structure depending on how the compiler optimizes that

as an alternative, if you want your queues to just be primitives without any packing, just push x, y, z sequentially onto the same queue, and dequeue them 3 at a time as well. it's not any more complex than managing 3 queues at once, avoids packing, and most importantly doesn't require both allocating and accessing multiple data structures. the choice of having 3 queues just to avoid using a wrapper is pretty baffling!

KaWiz
Автор

I was going to make a timestamp map for the topics but realised you already did it. Great video and it has no ads??? You are great. Thank you

mervemall