Algorithms in Java :Live problem solving & Design Techniques

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 Techniques
• How to Code a Algo in Java
• Calculate time and space complexity
• Dynamic Programming, Greedy, D&C and Much more

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
99 Kadane’s Algo Live Code Java
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
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)
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!

Homepage