William Fiset provides a complete introduction to graph theory algorithms with working source code in Java.
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.
💻 Code: github.com/williamfiset/algorithms
🔗 Slides: github.com/williamfiset/Algorithms/tree/master/slides/grapht…
🎥 Course created by William Fiset. Check out his YouTube channel: youtube.com/channel/UCD8yeTczadqdARzQUp29PJw
❤️ Try interactive Algorithms courses we love, right in your browser: scrimba.com/freeCodeCamp-Algorithms (Made possible by a grant from our friends at Scrimba)
⭐️ Course Contents ⭐️
⌨️ () Graph Theory Introduction
⌨️ () Problems in Graph Theory
⌨️ () Depth First Search Algorithm
⌨️ () Breadth First Search Algorithm
⌨️ () Breadth First Search grid shortest path
⌨️ () Topological Sort Algorithm
⌨️ () Shortest/Longest path on a Directed Acyclic Graph (DAG)
⌨️ () Dijkstra's Shortest Path Algorithm
⌨️ () Dijkstra's Shortest Path Algorithm | Source Code
⌨️ () Bellman Ford Algorithm
⌨️ () Floyd Warshall All Pairs Shortest Path Algorithm
⌨️ () Floyd Warshall All Pairs Shortest Path Algorithm | Source Code
⌨️ () Bridges and Articulation points Algorithm
⌨️ () Bridges and Articulation points source code
⌨️ () Tarjans Strongly Connected Components algorithm
⌨️ () Tarjans Strongly Connected Components algorithm source code
⌨️ () Travelling Salesman Problem | Dynamic Programming
⌨️ () Travelling Salesman Problem source code | Dynamic Programming
⌨️ () Existence of Eulerian Paths and Circuits
⌨️ () Eulerian Path Algorithm
⌨️ () Eulerian Path Algorithm | Source Code
⌨️ () Prim's Minimum Spanning Tree Algorithm
⌨️ () Eager Prim's Minimum Spanning Tree Algorithm
⌨️ () Eager Prim's Minimum Spanning Tree Algorithm | Source Code
⌨️ () Max Flow Ford Fulkerson | Network Flow
⌨️ () Max Flow Ford Fulkerson | Source Code
⌨️ () Unweighted Bipartite Matching | Network Flow
⌨️ () Mice and Owls problem | Network Flow
⌨️ () Elementary Math problem | Network Flow
⌨️ () Edmonds Karp Algorithm | Network Flow
⌨️ () Edmonds Karp Algorithm | Source Code
⌨️ () Capacity Scaling | Network Flow
⌨️ () Capacity Scaling | Network Flow | Source Code
⌨️ () Dinic's Algorithm | Network Flow
⌨️ () Dinic's Algorithm | Network Flow | Source Code
--
Learn to code for free and get a developer job: freecodecamp.org
Read hundreds of articles on programming: freecodecamp.org/news
Why it's here
1 person recommends this
What people say. Recommended as a comprehensive guide to learning graph theory and algorithms.
A
u/ASteelyDanin r/ExperiencedDevs • Recommends
On “Should I need to concentrate on fundamentals”
For an overview I used MIT OpenCourseWare's 6.006 Introduction to Algorithms. I also read (some of) Skiena's Algorithm Design Manual which had more depth than the courses but wasn't as good as explaining concepts in detail.
For Data Structures there are a number of free courses available on Youtube. This one seems to cover most of it. These videos from HackerRank by the author of Cracking the Coding Interview on Data Structures and Algorithms were also quality.
If you've been programming a while you probably know the basics like array/list, map/dict, and set. Make sure you know how those are implemented as well as the less frequently used data structures such as stack, queue, heap, t…