
In this video, we answer the question - what is an algorithm? This video introduces the concept of algorithms.
This video explains selection sort in a step-by-step manner using an example and visualization. The pseudocode for selection sort is also provided and the video walks you through the pseudocode.
This video explains bubble sort in a step-by-step manner using an example and visualization. The pseudocode for bubble sort is also provided and the video walks you through the pseudocode.
This video explains insertion sort in a step-by-step manner using an example and visualization. The pseudocode for insertion sort is also provided and the video walks you through the pseudocode.
This video introduces the concept of binary search trees and outlines its key properties.
This video describes how to insert a node into a binary trees using an illustrative example.
This video describes the process of deleting nodes from a binary search tree using an illustrative example. The video describes all the three cases that arise when removing nodes from a binary search tree.
This video describes how to search for a particular key value (or content) in a binary search tree using an illustrative example.
In this video, I provide an overview of graphs and discuss how to represent graphs using adjacency lists and adjacency matrices.
In this video, we provide an overview of minimum spanning trees in a weighted unidirectional graph.
This video explains Prim's Algorithm for finding the minimum spanning tree in a step-by-step manner using an example and visualization. The pseudocode for Prim's Algorithm is also provided and the video walks you through the pseudocode.
In this video, we study Kruskal's algorithm to find the minimum spanning tree in a graph. The approach covered in this video is a very simple one and is useful to understand more efficient implementations of Kruskal's algorithm.
In this video, we describe bipartite graphs and maximum matching in bipartite graphs. The video describes how to reduce bipartite matching to the maximum network flow problem.
In this video, we describe Ford-Fulkerson's algorithm for solving the maximum network flow problem using visualization and a simple example. The video provides pseudocode for the algorithm and explains the algorithm using a step-by-step approach.
In this video, we study the minimum vertex cover problem of a graph. Finding the minimum vertex cover is an NP-complete problem. The video explains the brute force algorithm to find the minimum vertex cover in a graph using an illustrative example.
I misspoke a couple of times in this video - When I say "it covers/does not cover all the vertices" , I actually meant to say "it covers/does not cover all the edges".
This video explains the two approximation algorithm for the minimum vertex cover of a graph in a step-by-step manner using an example and visualization. The pseudocode for the 2-approximation algorithm is also provided and the video walks you through the pseudocode.
Data Structures and Algorithms is one of the core topics in computer science. Being able to design and analyze algorithms is one of the most important skills required by computer science students and software professionals. All major software companies (e.g., Google, Meta, Microsoft) ask a variety of questions related to algorithms in their interviews.
This short course is designed to provide a quick overview of a variety of different algorithms. This course is ideal for individuals who seek a quick yet comprehensive refresher to data structures and algorithms (e.g., while preparing for an exam or job interviews). This course is also well-suited for individuals who are enthusiastic about computer science and want to obtain a high-level understanding of various algorithms.
Upon successful completion of this course, students will be able to understand, explain and apply key algorithmic concepts related to sorting algorithms (selection sort, bubble sort, and insertion sort). The course will also introduce Binary Search Trees and the various actions supported by them (i.e., insertion, deletion and search). Students will also be introduced to graph and graph algorithms. Specifically, we will cover minimum spanning tree algorithms such as Prim's Algorithm and Kruskal's Algorithm. The course also includes advanced topics such as bipartite graphs, Ford Fulkerson's Algorithm and minimum vertex cover.