JavaScript Algorithms and Data Structures Masterclass
About Course
Unlock the secrets of JavaScript algorithms and data structures with this comprehensive Masterclass, absolutely free! Taught by a seasoned coding bootcamp instructor, this 20-hour video course covers the essential computer science concepts and interview preparation strategies you need to excel in your career.
This course delves deep into fundamental concepts like Big O notation, recursion, and common programming patterns, equipping you with the skills to analyze and optimize code. You’ll explore various searching algorithms, implement six sorting algorithms (Bubble, Selection, Insertion, Quick, Merge, and Radix Sort), and build your own data structures from scratch, including linked lists, trees, heaps, hash tables, and graphs.
Gain hands-on experience with interactive exercises, complete solution walkthrough videos, and accompanying code files. This course utilizes animations and diagrams to enhance your understanding, making complex concepts easy to grasp.
This course is perfect for:
- Aspiring developers
- Anyone preparing for coding interviews
- Individuals seeking to improve their JavaScript skills
Master JavaScript algorithms and data structures today!
This course is completely free and available on platforms like Udemy, Udacity, Coursera, MasterClass, NearPeer, and others.
What Will You Learn?
- Learn everything you need to ace difficult coding interviews
- Master dozens of popular algorithms, including 6 sorting algorithms!
- Implement 10+ data structures from scratch
- Improve your problem solving skills and become a stronger developer
Course Content
Introduction
-
A Message from the Professor
-
Curriculum Walkthrough
07:43 -
What Order Should You Watch In
02:52 -
How I’m Running My Code
03:21 -
Course Material Download Link
00:00
Big O Notation
-
Intro to Big O
07:41 -
Timing Our Code
10:19 -
Counting Operations
04:36 -
Visualizing Time Complexities
04:25 -
Official Intro to Big O
09:58 -
Simplifying Big O Expressions
09:32 -
Space Complexity
06:26 -
Logs and Section Recap
08:46
Analyzing Performance of Arrays and Objects
-
Section Introduction
01:42 -
The BIG O of Objects
05:31 -
When are Arrays Slow
06:25 -
Big O of Array Methods
05:56
Problem Solving Approach
-
Introduction to Problem Solving
07:08 -
Step 1 Understand The Problem
07:59 -
Step 2 Concrete Examples
06:19 -
Step 3 Break It Down
07:44 -
Step 4 Solve Or Simplify
10:32 -
Step 5 Look Back and Refactor
16:57 -
Recap and Interview Strategies
04:12
Problem Solving Patterns
-
Intro to Problem Solving Patterns
02:55 -
Frequency Counter Pattern
15:11 -
Frequency Counter Anagram Challenge
02:33 -
Anagram Challenge Solution
06:18 -
Multiple Pointers Pattern
09:42 -
Multiple Pointers Count Unique Values Challenge
04:29 -
Count Unique Values Solution
06:30 -
Sliding Window Pattern
13:14 -
Divide And Conquer Pattern
07:02
Recursion
-
Story Time Martin & The Dragon
07:06 -
Why Use Recursion
05:53 -
The Call Stack
07:07 -
Our First Recursive Function
05:11 -
Our Second Recursive Function
07:54 -
Writing Factorial Iteratively
02:19 -
Writing Factorial Recursively
03:15 -
Common Recursion Pitfalls
05:06 -
Helper Method Recursion
06:23 -
Pure Recursion
07:45
Searching Algorithms
-
Intro to Searching
04:04 -
Intro to Linear Search
04:47 -
Linear Search Solution
05:18 -
Linear Search BIG O
01:55 -
Intro to Binary Search
05:47 -
Binary Search PseudoCode
02:40 -
Binary Search Solution
16:41 -
Binary Search BIG O
06:09 -
Naive String Search
04:38 -
Naive String Search Implementation
12:29
Bubble Sort
-
Introduction to Sorting Algorithms
08:35 -
Built-In JavaScript Sorting
04:40 -
Bubble Sort Overview
07:21 -
Bubble Sort Implementation
09:58 -
Bubble Sort Optimization
04:22 -
Bubble Sort BIG O Complexity
01:28
Selection Sort
-
Selection Sort Introduction
06:18 -
Selection Sort Implementation
11:14 -
Selection Sort Big O Complexity
01:40
Insertion Sort
-
Insertion Sort Introduction
03:17 -
Insertion Sort Implementation
10:42 -
Insertion Sort BIG O Complexity
02:24
Comparing Bubble, Selection, and Insertion Sort
-
Comparing Bubble
05:33
Merge Sort
-
Intro to the Crazier Sorts
06:05 -
Merge Sort Introduction
05:25 -
Merging Arrays Intro
05:11 -
Merging Arrays Implementation
06:55 -
Writing Merge Sort Part 1
02:21 -
Writing Merge Sort Part 2
12:37 -
Merge Sort BIG O Complexity
06:22
Quick Sort
-
Introduction to Quick Sort
09:00 -
Pivot Helper Introduction
08:06 -
Pivot Helper Implementation
08:08 -
Quick Sort Implementation
08:46 -
Quick Sort Call Stack Walkthrough
04:15 -
Quick Sort Big O Complexity
04:06
Radix Sort
-
Radix Sort Introduction
09:22 -
Radix Sort Helper Methods
11:09 -
Radix Sort Pseudocode
04:18 -
Radix Sort Implementation
10:24 -
Radix Sort BIG O Complexity
03:51
Data Structures Introduction
-
Which Data Structure Is The Best
12:38 -
ES2015 Class Syntax Overview
05:14 -
Data Structures The Class Keyword
06:36 -
Data Structures Adding Instance Methods
09:49 -
Data Structures Adding Class Methods
07:11
Singly Linked Lists
-
Intro to Singly Linked Lists
07:46 -
Starter Code and Push Intro
07:22 -
Singly Linked List Push Solution
04:24 -
Singly Linked List Pop Intro
06:14 -
Singly Linked List Pop Solution
07:35 -
Singly Linked List Shift Intro
01:31 -
Singly Linked List Shift Solution
03:22 -
Singly Linked List Unshift Intro
01:34 -
Singly Linked List Unshift Solution
05:58 -
Singly Linked List Get Intro
02:32 -
Singly Linked List Get Solution
03:32 -
Singly Linked List Set Intro
01:26 -
Singly Linked List Set Solution
02:10 -
Singly Linked List Insert Intro
04:27 -
Singly Linked List Insert Solution
07:49 -
Singly Linked List Remove Intro
01:56 -
Singly Linked List Remove Solution
03:15 -
Singly Linked List Reverse Intro
04:46 -
Singly Linked List Reverse Solution
08:58 -
Singly Linked List BIG O Complexity
05:41
Doubly Linked Lists
-
Doubly Linked Lists Introduction
04:43 -
Setting Up Our Node Class
03:00 -
Push
02:10 -
Push Solution
04:04 -
Pop
03:20 -
Pop Solution
06:23 -
Shift
02:44 -
Shift Solution
04:12 -
Unshift
01:36 -
Unshift Solution
02:19 -
Get
04:02 -
Get Solution
07:04 -
Set
01:18 -
Set Solution
02:08 -
Insert
02:50 -
Insert Solution
06:48 -
Remove
02:18 -
Remove Solution
06:28 -
Comparing Singly and Doubly Linked Lists
04:32
Stacks + Queues
-
Intro to Stacks
06:19 -
Creating a Stack with an Array
07:05 -
Writing Our Own Stack From Scratch
11:33 -
BIG O of Stacks
02:14 -
Intro to Queues
04:14 -
Creating Queues Using Arrays
03:25 -
Writing Our Own Queue From Scratch
10:24 -
BIG O of Queues
02:30
Binary Search Trees
-
Introduction to Trees
06:45 -
Uses For Trees
06:32 -
Intro to Binary Trees
05:54 -
POP QUIZ!
01:13 -
Searching A Binary Search Tree
02:55 -
Our Tree Classes
02:44 -
BST Insert
03:50 -
BST Insert Solution
11:53 -
BST Find
04:42 -
BST Find Solution
05:36 -
Big O of Binary Search Trees
05:58
Tree Traversal
-
Intro To Tree Traversal
04:50 -
Breadth First Search Intro
05:51 -
Breadth First Search Solution
06:20 -
Depth First PreOrder Intro
05:37 -
Depth First PreOrder Solution
06:50 -
Depth First PostOrder Intro
04:02 -
Depth First PostOrder Solution
02:38 -
Depth First InOrder Intro
02:07 -
Depth First InOrder Solution
02:32 -
When to Use BFS and DFS
07:37
Binary Heaps
-
Intro to Heaps
07:30 -
Storing Heaps
07:05 -
Heap Insert Intro
09:14 -
Heap Insert Solution
10:51 -
Heap ExtractMax Intro
08:28 -
Heap ExtractMax Solution
17:56 -
Priority Queue Intro
08:59 -
Priority Queue Pseudocode
03:43 -
Priority Queue Solution
09:21 -
BIG O of Binary Heaps
08:54
Hash Tables
-
Intro to Hash Tables
05:50 -
More About Hash Tables
04:32 -
Intro to Hash Functions
06:11 -
Writing Our First Hash Function
08:27 -
Improving Our Hash Function
07:10 -
Handling Collisions
03:59 -
Hash Table Set and Get
04:02 -
Hash Table Set Solution
05:14 -
Hash Table Get Solution
06:43 -
Hash Table Keys and Values
01:41 -
Hash Table Keys and Values Solution
08:43 -
Hash Table Big O Complexity
05:41
Graphs
-
Intro to Graphs
03:50 -
Uses for Graphs
07:57 -
Types of Graphs
08:48 -
Storing Graphs Adjacency Matrix
03:57 -
Storing Graphs Adjacency List
02:29 -
Adjacency Matrix Vs. List BIG O
05:51 -
Add Vertex Intro
02:10 -
Add Vertex Solution
02:54 -
Add Edge Intro
02:32 -
Add Edge Solution
02:11 -
Remove Edge Intro
01:35 -
Remove Edge Solution
02:41 -
Remove Vertex Intro
02:35 -
Remove Vertex Solution
04:34
Graph Traversal
-
Intro to Graph Traversal
08:38 -
Depth First Graph Traversal
08:30 -
DFS Recursive Intro
07:27 -
DFS Recursive Solution
12:45 -
DFS Iterative Intro
03:37 -
DFS Iterative Solution
08:44 -
Breadth First Graph Traversal
02:59 -
BFS Intro
02:27 -
BFS Solution
08:09
Dijkstra’s Algorithm!
-
Intro to Dijkstra’s and Prerequisites
02:41 -
Who was Dijkstra and what is his Algorithm
09:00 -
Writing a Weighted Graph
05:20 -
Walking through the Algorithm
16:26 -
Introducing Our Simple Priority Queue
03:48 -
Dijkstra’s Pseudo-Code
04:28 -
Implementing Dijkstra’s Algorithm
21:18 -
Upgrading the Priority Queue
01:52
Dynamic Programming
-
Intro to Dynamic Programming
05:03 -
Overlapping Subproblems
05:59 -
Optimal Substructure
06:28 -
Writing A Recursive Solution
06:43 -
Time Complexity of Our Solution
04:11 -
The Problem With Our Solution
03:39 -
Enter Memoization!
09:00 -
Time Complexity of Memoized Solution
03:27 -
Tabulation A Bottom Up Approach
06:59
Earn a certificate
Add this certificate to your resume to demonstrate your skills & increase your chances of getting noticed.