Computer Courses

Algorithms (Abdul Bari)

Sikhami InstituteEnglish

Free

Join for free
  • 83 video lectures (23h 47m)
  • Certificate of completion
  • Ask the teacher your doubts
  • Watch on the web and in the Android app

About this course

Abdul Bari's classic lectures on the design and analysis of algorithms, known for clear whiteboard explanations of every major technique. Who it's for: computer science students, GATE aspirants and anyone preparing for coding interviews. These are the free, official videos of the "Algorithms" playlist from the Abdul Bari YouTube channel (youtube.com/@abdul_bari). All videos belong to Abdul Bari; Sikhami is not affiliated with Abdul Bari and simply arranges the public playlist into a course, so you can learn one lesson at a time and keep track of your progress.

What you will learn

• Analysing algorithms with asymptotic notation (Big O, Omega and Theta) • Recurrence relations and the master theorem • Divide and conquer: binary search, merge sort and quick sort • Greedy methods such as Huffman coding, Prim's and Kruskal's algorithms • Dynamic programming, from matrix chain multiplication to the travelling salesman problem • Backtracking, branch and bound, and NP-hard and NP-complete problems • Heaps, heap sort and graph traversals

Course content

1 section · 83 lectures · 23h 47m

  1. 1. Algorithms

    • 1. Introduction to Algorithms11m
    • 1.1 Priori Analysis and Posteriori Testing1m
    • 1.2 Characteristics of Algorithm5m
    • 1.3 How Write and Analyze Algorithm10m
    • 1.4 Frequency Count Method12m
    • 1.5.1 Time Complexity #19m
    • 1.5.2 Time Complexity Example #214m
    • 1.5.3 Time Complexity of While and if #321m
    • 1.6 Classes of functions3m
    • 1.7 Compare Class of Functions5m
    • 1.8.1 Asymptotic Notations Big Oh - Omega - Theta #115m
    • 1.8.2 Asymptotic Notations - Big Oh - Omega - Theta #210m
    • 1.9 Properties of Asymptotic Notations11m
    • 1.10.1 Comparison of Functions #19m
    • 1.10.2 Comparison of Functions #210m
    • 1.11 Best Worst and Average Case Analysis18m
    • 1.12 Disjoint Sets Data Structure - Weighted Union and Collapsing Find26m
    • 2 Divide And Conquer7m
    • 2.1.1 Recurrence Relation (T(n)= T(n-1) + 1) #113m
    • 2.1.2 Recurrence Relation (T(n)= T(n-1) + n) #216m
    • 2.1.3 Recurrence Relation (T(n)= T(n-1) + log n) #312m
    • 2.1.4 Recurrence Relation T(n)=2 T(n-1)+1 #410m
    • 2.2 Masters Theorem Decreasing Function8m
    • 2.3.1 Recurrence Relation Dividing Function T(n)=T(n/2)+1 #18m
    • 2.3.2 Recurrence Relation Dividing [ T(n)=T(n/2)+ n]. #27m
    • 2.3.3 Recurrence Relation [ T(n)= 2T(n/2) +n] #311m
    • 2.4.1 Masters Theorem in Algorithms for Dividing Function #116m
    • 2.4.2 Examples for Master Theorem #25m
    • 2.5 Root function (Recurrence Relation)5m
    • 2.6.1 Binary Search Iterative Method19m
    • 2.6.2 Binary Search Recursive Method7m
    • 2.6.3 Heap - Heap Sort - Heapify - Priority Queues51m
    • 2.7.1 Two Way MergeSort - Iterative method20m
    • 2.7.2. Merge Sort Algorithm20m
    • 2.7.3 MergeSort in-depth Analysis13m
    • 2.8.1 QuickSort Algorithm13m
    • 2.8.2 QuickSort Analysis11m
    • 2.9 Strassens Matrix Multiplication23m
    • 3. Greedy Method - Introduction12m
    • 3.1 Knapsack Problem - Greedy Method15m
    • 3.2 Job Sequencing with Deadlines - Greedy Method13m
    • 3.3 Optimal Merge Pattern - Greedy Method9m
    • 3.4 Huffman Coding - Greedy Method17m
    • 3.5 Prims and Kruskals Algorithms - Greedy Method20m
    • 3.6 Dijkstra Algorithm - Single Source Shortest Path - Greedy Method18m
    • 4 Principle of Optimality - Dynamic Programming introduction14m
    • 4.1 MultiStage Graph - Dynamic Programming21m
    • 4.1.1 MultiStage Graph (Program) - Dynamic Programming14m
    • 4.2 All Pairs Shortest Path (Floyd-Warshall) - Dynamic Programming14m
    • 4.3 Matrix Chain Multiplication - Dynamic Programming23m
    • [New] Matrix Chain Multiplication using Dynamic Programming Formula52m
    • 4.3.1 Matrix Chain Multiplication (Program) - Dynamic Programming18m
    • 4.4 Bellman Ford Algorithm - Single Source Shortest Path - Dynamic Programming17m
    • 4.5 0/1 Knapsack - Two Methods - Dynamic Programming28m
    • 4.5.1 0/1 Knapsack Problem (Program) - Dynamic Programming17m
    • 4.6 Optimal Binary Search Tree (Successful Search Only) - Dynamic Programming30m
    • 4.6.2 [New] Optimal Binary Search Tree Successful and Unsuccessful Probability - Dynamic Programming57m
    • 4.7 [New] Traveling Salesman Problem - Dynamic Programming using Formula17m
    • 4.8 Reliability Design - Dynamic Programming26m
    • 4.9 Longest Common Subsequence (LCS) - Recursion and Dynamic Programming23m
    • 5.1 Graph Traversals - BFS & DFS -Breadth First Search and Depth First Search18m
    • 5.2 Articulation Point and Biconnected Components8m
    • 6 Introduction to Backtracking - Brute Force Approach8m
    • 6.1 N Queens Problem using Backtracking13m
    • 6.2 Sum Of Subsets Problem - Backtracking12m
    • 6.3 Graph Coloring Problem - Backtracking15m
    • 6.4 Hamiltonian Cycle - Backtracking18m
    • 7 Branch and Bound Introduction9m
    • 7.1 Job Sequencing with Deadline - Branch and Bound10m
    • 7.2 0/1 Knapsack using Branch and Bound10m
    • 7.3 Traveling Salesman Problem - Branch and Bound24m
    • 8. NP-Hard and NP-Complete Problems31m
    • 8.1 NP-Hard Graph Problem - Clique Decision Problem17m
    • 9.1 Knuth-Morris-Pratt KMP String Matching Algorithm18m
    • 9.2 Rabin-Karp String Matching Algorithm23m
    • 10.1 AVL Tree - Insertion and Rotations43m
    • 10.2 B Trees and B+ Trees. How they are useful in Databases39m
    • Asymptotic Notations - Simplified22m
    • Hashing Technique - Simplified17m
    • Shortest Path Algorithms (Dijkstra and Bellman-Ford) - Simplified26m
    • BFS DFS - Simplified19m
    • Tower of Hanoi Problem - Made Easy9m
    • Row-Major and Column-Major Mapping19m