Advanced Algorithms (Graph Algorithms) in Java
MP4 | Video: h264, 1920x1080 | Audio: AAC, 44.1 KHz
Language: English (US) | Size: 3.26 GB | Duration: 12h 31m
MP4 | Video: h264, 1920x1080 | Audio: AAC, 44.1 KHz
Language: English (US) | Size: 3.26 GB | Duration: 12h 31m
Breadth-First Search, Depth-First Search, Shortest Path, Arbitrage, Strongly Connected Components and Maximum Flow
What you'll learn
Learn about the applications of data structures
Learn about the fundamental basics of graphs and graph theory
Implement advanced algorithms (graph algorithms) efficiently
Learn graph traversing such as breadth-first search and depth-first search
Learn about topological ordering and cycle detection
Learn about shortest path algorithms (Dijkstra's and Bellman-Ford algorithms)
Learn about spanning trees
Learn about strongly connected components
Learn about Hamiltonian cycles and Eulerian cycles
Learn about maximum flow (max flow min cut theorem)
Requirements
Internet connection
Basic knowledge of data structures
Description
This course is about advanced algorithms (graph algorithms) focusing on graph traversal, shortest path problems, spanning trees and maximum flow problems and a lots of its applications from Google Web Crawler to taking advantage of stock market arbitrage situations. Section 1 - Graphs Theory Basics:what is a G(V,E) graphadjacency matrix representationadjacency list representationSection 2 - Graph Traversal (Breadth-First Search)what is breadth-first search?how to use BFS for WebCrawling in search engines?Section 3 - Graph Traversal (Depth-First Search)what is depth-first search?how to use recursion to implement DFSapplications of DFS such as topological ordering and cycle detectionfind way out of a maze with DFSSection 4 - Topological Orderingwhat is topological ordering (topological sort)directed acyclic graphs (DAGs)DAG shortest path and longest pathcritical path methods and project managementSection 5 - Cycle Detectionwhat are cycles in a graph?forward edges and backward edgescycle detection algorithms (Tarjan's algorithm with DFS)Section 6 - Dijkstra's Shortest Path Algorithmwhat is a shortest path in a G(V,E) graphDijkstra's shortest path algorithmSection 7 - Bellman-Ford Shortest Path AlgorithmBellman-Ford algorithmhow to handle negative cyclesfinding arbitrage opportunities on the FOREXSection 8: - Spanning Trees (Kruskal and Prim's Algorithms)what are spanning trees?union find data structuresKruskal's algorithmPrim's algorithmSection 9 - Strongly Connected Components (SCCs)what are strongly connected componentsKosaraju's algorithmTarjan's algorithmSection 10 - Maximum Flow Problemthe famous maximum flow problemhow to reduce most of the hard problems to maximum flow problemFord-Fulkerson algorithmbipartite matching problemSection 9 - Travelling Salesman Problem and Hamiltonian Cycles:travelling salesman problem (TSP)how to deal with NP-hard problemswhat are meta-heuristicsSection 10 - Eulerian Pathseulerian paths and eulerian cyclesHierholzer algorithm and the Chinese Postman ProblemSection 11 - Algorithms Analysishow to measure the running time of algorithmsrunning time analysis with big O (ordo), big Ω (omega) and big θ (theta) notationscomplexity classespolynomial (P) and non-deterministic polynomial (NP) algorithmsO(1), O(logN), O(N) and several other running time complexitiesThe course is going to take approximately 11 hours to completely but I highly suggest you typing these algorithms out several times in order to get a good grasp of it. You can download the source code of the whole course at the last lecture. You should definitely take this course if you are interested in advanced topics concerning algorithms. There are a bunch of fields where these methods can be used: from software engineering to scientific research.Thanks for joining the course, let's get started!
Who this course is for:
This course is meant for everyone from scientists to software developers who want to get closer to algorithmic thinking in the main