English | MP4 | AVC 1280×720 | AAC 44KHz 2ch | 167 lectures (19h 40m) | 4.50 GB
Recursion,BackTracking,Divide & Conquer,Dynamic Programming,Greedy Algorithms via Data Structures and Algorithms in Java
Algorithm Design Techniques: Live problem-solving in Java
Algorithms are everywhere. One great algorithm applied sensibly can result in a System like GOOGLE!
Completer scientists have worked from 100s of years and derived some of the techniques that can be applied to write and design algorithms.
So Why to reinvent the wheel ??
Let’s go through some of the most famous algorithm design techniques in this course.
Once you will come to know these design techniques It will become very easy for you to approach a problem by identifying which technique to apply to solve that correctly and efficiently.
0. Complexity analysis
1. Recursion is the base of any algorithm design
2. Backtracking
3. Divide and Conquer
4. Greedy algorithms
5. Dynamic programming
And WE WILL WRITE THE CODE LINE BY LINE IN JAVA !!
By the end of this course –
1. You will understand how to design algorithms
2. A lot of coding practice and design live problems in Java
3. Algorithm Complexity analysis
AND
If you are preparing for your coding Interview or doing competitive programming This course will be a big help for you.
What you’ll learn
- Algorithm Design in Computer Systems
- Algorithm Design Techniques
- How to Code a Algo in Java
- Calculate time and space complexity
- Dynamic Programming, Greedy, D&C and Much more
Table of Contents
Course Introduction
1 Course Introduction
2 Course Resources
Introduction to Algorithms
3 Introduction to Algorithms
Complexity Analysis
4 Section Introduction
5 Complexity Analysis 1
6 Complexity Analysis 2
7 Section Summary
Recurrence Relation
8 Section Introduction
9 Recurrence Relation
10 Solving Recurrence Relation
11 Master’s Theorem
12 Section Summary
Thinking Recursively
13 Section Introduction
14 Recursion
15 Identification
16 Approaching
17 Problem 01 FindingSubsequences – Logic
18 Problem 01 FindingSubsequences – Live Code Java
19 Problem 01 FindingSubsequences – Complexity Analysis
20 Problem 02 Tower of Hanoi – Logic
21 Problem 02 Tower of Hanoi – Live Code Java
22 Problem 02 Tower of Hanoi – Complexity Analysis
23 Problem 03 7.Array Product Sum – Logic
24 Problem 03 7.Array Product Sum – Live Code Java
25 Problem 03 Array Product Sum – Complexity Analysis
26 Problem 04 Binary Subtree – Logic
27 Problem 04 Binary Subtree – Live Code Java
28 Problem 04 Binary Subtree – Complexity Analysis
29 Why and Why not Recursion
30 Types Of Recursion
31 Tail Recursion
32 Section Summary
Backtracking
33 Section Introduction
34 Introduction to Backtracking
35 Identify Backtracking
36 Approching the Solution
37 Problem 01 Rat In Maze – Logic
38 Problem 01 Rat In Maze – Code
39 Problem 01 Rat In Maze – Complexity Analysis
40 Problem 02 NQueen – Logic
41 Problem 02 NQueen – Live Code in Java
42 Problem 02 NQueen – Complexity Analysis
43 Problem 03 Knights Tour Problem – Logic
44 Problem 03 Knights Tour Problem – Live Code in Java
45 Problem 03 Knight Tour Problem – Complexity Analysis
46 Problem 04 Boggle Word Search – Logic
47 Problem 04 Boggle Word Search – Live Code in Java
48 Problem 04 Boggle Word Search – Complexity Analysis
49 Section Summary
Divide and Conquer
50 Section Introduction
51 Introduction To Divide And Conquer
52 Identification and Approaching
53 Problem 01 MergeSort – Logic
54 Problem 01 MergeSort – Live Java Code
55 Problem 01 MergeSort – Complexity Analysis
56 Problem 02 QuickSort – Logic
57 Problem 02 QuickSort – Live Java Code
58 Problem 02 QuickSort – Complexity Analysis
59 Problem 03 Median Of Medians – Logic
60 Problem 03 Median Of Medians – Live Java Code
61 Section Summary
Greedy Technique
62 Section Introduction
63 Introduction to Greedy
64 Identification & Approaching the Solution
65 Problem 01 Fractional Knapsack – Logic
66 Problem 01 Fractional Knapsack – Live Code Java
67 Problem 01 Fractional Knapsack – Complexity Analysis
68 Problem 02 IntervalScheduling – Logic
69 Problem 02 IntervalScheduling – Live Code Java
70 Problem 02 IntervalScheduling – Complexity Analysis
71 Problem 03 Huffman Code – Logic
72 Problem 03 Huffman Code – Live Code Java
73 Problem 03 Huffman Code – Complexity Analysis
74 Problem 04 Dijkstra – Logic
75 Problem 04 Dijkstra Logic – Live Code
76 Problem 04 Dijkstra – Complexity Analysis
77 Summary
Dynamic Programming
78 Section Introduction
79 Introduction to Dynamic Programming
80 Identification
81 Compare DP D&C and Greedy
82 Approaching the Solution
83 Example 01 Staircase Problem Theory & Live Code
84 Example 01 Staircase Problem Complexity Analysis
85 Example 02 – 01 Knapsack Theory & Live code
86 Example 02 – 01 Knapsack Complexity Analysis
87 Example 03 – Coin Change Problem Theory and Code
88 Example 03 – Coin Change Problem Complexity Analysis
89 Example 04 Longest Decreasing Subsequence Explanation And Code
90 Example 04 Longest Decreasing Subsequence Complexity Analysis
91 Example 05 Levenshtein problem
92 Example 05 Levenshtein Complexity Analysis
93 Example 06 Rod Cutting
94 Example 06 Rod Cutting – Complexity Analysis
95 Example 07 Matrix Chain Multiplication
96 Example 07 Matrix Chain Multiplication Complexity Analysis
97 Summary
Famous Algorithms
98 Kadane’s Algo
99 Kadane’s Algo Live Code Java
100 Kadane’s Algo Complexity Analysis
101 BellmanFord’s Algo
102 BellmanFord’s Algo Live Code Java
103 BellmanFord’s Algo Complexity Analysis
104 Topological Sort Kahn’s Algo
105 Topological Sort Live Code Java
106 Topological Sort Complexity Analysis
107 Edmond’s KarpFord-Fulkerson Algorithm
108 Ford-Fulkerson Algorithm – Edmond’s Karp Implementation
Trees
109 Tree Overview
110 Identification
111 Approaching Tree Problems
112 Problem 1 Sum Tree – Logic
113 Problem 1 Sum Tree – Live Code
114 Problem 2 Invert Binary Tree – Logic
115 Problem 2 Invert Binary Tree – Live Code
116 Problem 3 Binary Search Tree – Logic
117 Problem 3 Binary Search Tree – Live Code
118 Problem 4 Binary Tree from InOrder & LevelOrder – Logic
119 Problem 4 Binary Tree from InOrder & LevelOrder – Live Code
Graphs
120 Graphs – In Real World
121 Google’s Knowledge Graph
122 Graphs – Overview
123 Terminologies
124 Identification of Problem
125 Approaching the Problem
126 Mind-Map
127 Type – Graph Traversal
128 Depth First Search Traversal
129 DFS – Implementation (Recursive)
130 DFS – Implementation (Iterative)
131 Breadth First Search Traversal
132 BFS – Implementation
133 Type – Minimum Spanning Tree
134 Prim’s Algorithm
135 Prim’s Algorithm – Implementation
136 Kruskal’s Algorithm
137 Union-Find Algorithm
138 Kruskal’s Algorithm – Implementation
139 Type – Shortest Path
140 Dijkstra’s Algorithm
141 Dijkstra’s Algorithm – Implementation
142 BellmanFord’s Algo
143 BellmanFord’s Algo Live Code
144 Floyd Warshall Algorithm
145 Floyd-Warshall Algorithm – Implementation
146 Johnson’s Algorithm
147 Johnson’s Algorithm – Implementation
148 Type – Network Flow
149 Ford-Fulkerson Algorithm
150 Ford-Fulkerson Algorithm – Edmond’s Karp Implementation
151 Max-Flow Min-Cut Theorem
152 Type – Strongly Connected Components
153 Tarjan’s Algorithm
154 Tarjan’s Algorithm – Implementation
155 Kosaraju’s Algorithm
156 Kosaraju’s Algorithm – Implementation
Bonus Arrays in Java
157 Section Introduction
158 Single Dimension Arrays
159 Multi Dimension Arrays
160 Declaration , Initialisation & Creation
161 Playing With Arrays Syntax Java
162 Traversing Arrays,Length of Array Java
163 Types of Array – based on elements it holds
164 Reassigning Array Objects to Array References
165 Anonymous Arrays
166 Arrays-Summay
Thank you!
167 Thank You!
Resolve the captcha to access the links!