About Course
In this course, part of the Algorithms and Data Structures MicroMasters program, you will learn basic algorithmic techniques and ideas for computational problems.
which arise in practical applications such as sorting and searching, divide and conquer, greedy algorithms, and dynamic programming.
This course will cover theories, including:
- how to sort data and how it helps for searching;
- how to break a large problem into pieces and solve them recursively;
- when it makes sense to proceed greedily;
- how dynamic programming is used in genomic studies.
You will practice solving computational problems, designing, and implementing solutions efficiently (so that they run in less than a second).
Course Content
Algorithms
-
3.4 Huffman Coding – Greedy Method
00:00 -
4.5 0/1 Knapsack – Two Methods – Dynamic Programming
00:00 -
4.5.1 0/1 Knapsack Problem (Program) – Dynamic Programming
00:00 -
4.6 Optimal Binary Search Tree (Successful Search Only) – Dynamic Programming
00:00 -
4.6.2 [New] Optimal Binary Search Tree Successful and Unsuccessful Probability – Dynamic Programming
00:00 -
4.7 [New] Traveling Salesman Problem – Dynamic Programming using Formula
00:00 -
4.8 Reliability Design – Dynamic Programming
00:00 -
4.9 Longest Common Subsequence (LCS) – Recursion and Dynamic Programming
00:00 -
5.1 Graph Traversals – BFS & DFS -Breadth First Search and Depth First Search
00:00 -
4.4 Bellman Ford Algorithm – Single Source Shortest Path – Dynamic Programming
00:00 -
4.3.1 Matrix Chain Multiplication (Program) – Dynamic Programming
00:00 -
3.5 Prims and Kruskals Algorithms – Greedy Method
00:00 -
3.6 Dijkstra Algorithm – Single Source Shortest Path – Greedy Method
00:00 -
4 Principle of Optimality – Dynamic Programming introduction
00:00 -
4.1 MultiStage Graph – Dynamic Programming
00:00 -
4.1.1 MultiStage Graph (Program) – Dynamic Programming
00:00 -
4.2 All Pairs Shortest Path (Floyd-Warshall) – Dynamic Programming
00:00 -
4.3 Matrix Chain Multiplication – Dynamic Programming
00:00 -
[New] Matrix Chain Multiplication using Dynamic Programming Formula
00:00 -
5.2 Articulation Point and Biconnected Components
00:00 -
6 Introduction to Backtracking – Brute Force Approach
00:00 -
6.1 N Queens Problem using Backtracking
00:00 -
9.2 Rabin-Karp String Matching Algorithm
00:00 -
10.1 AVL Tree – Insertion and Rotations
00:00 -
10.2 B Trees and B+ Trees. How they are useful in Databases
00:00 -
Asymptotic Notations – Simplified
00:00 -
Hashing Technique – Simplified
00:00 -
Shortest Path Algorithms (Dijkstra and Bellman-Ford) – Simplified
00:00 -
BFS DFS – Simplified
00:00 -
Tower of Hanoi Problem – Made Easy
00:00 -
9.1 Knuth-Morris-Pratt KMP String Matching Algorithm
00:00 -
8.1 NP-Hard Graph Problem – Clique Decision Problem
00:00 -
6.2 Sum Of Subsets Problem – Backtracking
00:00 -
6.3 Graph Coloring Problem – Backtracking
00:00 -
6.4 Hamiltonian Cycle – Backtracking
00:00 -
7 Branch and Bound Introduction
00:00 -
7.1 Job Sequencing with Deadline – Branch and Bound
00:00 -
7.2 0/1 Knapsack using Branch and Bound
00:00 -
7.3 Traveling Salesman Problem – Branch and Bound
00:00 -
8. NP-Hard and NP-Complete Problems
00:00 -
Row-Major and Column-Major Mapping
00:00 -
3.3 Optimal Merge Pattern – Greedy Method
00:00 -
1. Introduction to Algorithms
00:00 -
1.8.2 Asymptotic Notations – Big Oh – Omega – Theta #2
00:00 -
1.9 Properties of Asymptotic Notations
00:00 -
1.10.1 Comparison of Functions #1
00:00 -
1.10.2 Comparison of Functions #2
00:00 -
1.11 Best Worst and Average Case Analysis
00:00 -
1.12 Disjoint Sets Data Structure – Weighted Union and Collapsing Find
00:00 -
2 Divide And Conquer
00:00 -
2.1.1 Recurrence Relation (T(n)= T(n-1) + 1) #1
00:00 -
1.8.1 Asymptotic Notations Big Oh – Omega – Theta #1
00:00 -
1.7 Compare Class of Functions
00:00 -
1.1 Priori Analysis and Posteriori Testing
00:00 -
1.2 Characteristics of Algorithm
00:00 -
1.3 How Write and Analyze Algorithm
00:00 -
1.4 Frequency Count Method
00:00 -
1.5.1 Time Complexity #1
00:00 -
1.5.2 Time Complexity Example #2
00:00 -
1.5.3 Time Complexity of While and if #3
00:00 -
1.6 Classes of functions
00:00 -
2.1.2 Recurrence Relation (T(n)= T(n-1) + n) #2
00:00 -
2.1.3 Recurrence Relation (T(n)= T(n-1) + log n) #3
00:00 -
2.1.4 Recurrence Relation T(n)=2 T(n-1)+1 #4
00:00 -
2.7.1 Two Way MergeSort – Iterative method
00:00 -
2.7.2. Merge Sort Algorithm
00:00 -
2.7.3 MergeSort in-depth Analysis
00:00 -
2.8.1 QuickSort Algorithm
00:00 -
2.8.2 QuickSort Analysis
00:00 -
2.9 Strassens Matrix Multiplication
00:00 -
3. Greedy Method – Introduction
00:00 -
3.1 Knapsack Problem – Greedy Method
00:00 -
2.6.3 Heap – Heap Sort – Heapify – Priority Queues
00:00 -
2.6.2 Binary Search Recursive Method
00:00 -
2.2 Masters Theorem Decreasing Function
00:00 -
2.3.1 Recurrence Relation Dividing Function T(n)=T(n/2)+1 #1
00:00 -
2.3.2 Recurrence Relation Dividing [ T(n)=T(n/2)+ n]. #2
00:00 -
2.3.3 Recurrence Relation [ T(n)= 2T(n/2) +n] #3
00:00 -
2.4.1 Masters Theorem in Algorithms for Dividing Function #1
00:00 -
2.4.2 Examples for Master Theorem #2
00:00 -
2.5 Root function (Recurrence Relation)
00:00 -
2.6.1 Binary Search Iterative Method
00:00 -
3.2 Job Sequencing with Deadlines – Greedy Method
00:00
Student Ratings & Reviews
No Review Yet