Autoplay
Autocomplete
Previous Lesson
Complete and Continue
From 0 to 1: Data Structures & Algorithms in Java
What this course is about
You, This course and Us (3:03)
Data Structures And Algorithms - A Symbiotic Relationship
Why are Data Structures And Algorithms important? (15:06)
Complexity Analysis and the Big-O Notation
Performance and Complexity (16:04)
The Big-O Notation (16:48)
What is the complexity of these pieces of code? (19:12)
Linked Lists
Linked Lists - The most basic of all data structures (19:55)
Linked List Problems (10:25)
Linked Lists vs Arrays (10:29)
Stacks And Queues
Meet The Stack - Simple But Powerful (15:42)
Building A Stack Using Java (16:55)
Match Parenthesis To Check A Well Formed Expression (11:23)
Find The Minimum Element In A Stack In Constant Time (8:53)
Meet The Queue - A Familiar Sight In Everyday Life (14:13)
The Circular Queue - Tricky But Fast (19:46)
Build A Queue With Two Stacks (17:32)
Sorting and Searching
Sorting Trade-Offs (10:54)
Selection Sort (15:26)
Bubble Sort (14:44)
Insertion Sort (14:34)
Shell Sort (14:26)
Merge Sort (19:25)
Quick Sort (15:30)
Binary Search - search quickly through a sorted list (11:36)
Binary Trees
Meet The Binary Tree - A Hierarchical Data Structure (13:05)
Breadth First Traversal (18:45)
Depth First - Pre-OrderTraversal (14:37)
Depth First - In-Order and Post-Order Traversal (13:53)
Binary Search Trees
The Binary Search Tree - an introduction (9:51)
Insertion and Lookup in a Binary Search Tree (17:02)
Binary Tree Problems
Minimum Value, Maximum Depth and Mirror (12:14)
Count Trees, Print Range and Is BST (14:41)
Heaps
The Heap Is Just The Best Way to Implement a Priority Queue (17:17)
Meet The Binary Heap - It's A Tree At Heart (12:41)
The Binary Heap - Logically A Tree Really An Array (17:16)
The Binary Heap - Making It Real With Code (7:40)
Heapify! (19:35)
Insert And Remove From A Heap (16:36)
Revisiting Sorting - The Heap Sort
Heap Sort Phase I - Heapify (19:33)
Heap Sort Phase II - The Actual Sort (17:44)
Heap Problems
Maximum Element In A Minimum Heap and K Largest Elements In A Stream (15:56)
Graphs
Introducing The Graph (15:42)
Types Of Graphs (7:23)
The Directed And Undirected Graph (14:31)
Representing A Graph In Code (8:11)
Graph Using An Adjacency Matrix (15:27)
Graph Using An Adjacency List And Adjacency Set (17:55)
Comparison Of Graph Representations (10:11)
Graph Traversal - Depth First And Breadth First (14:58)
Graph Algorithms
Topological Sort In A Graph (17:30)
Implementation Of Topological Sort (6:56)
Shortest Path Algorithms
Introduction To Shortest Path In An Unweighted Graph - The Distance Table (12:38)
The Shortest Path Algorithm Visualized (14:15)
Implementation Of The Shortest Path In An Unweighted Graph (6:19)
Introduction To The Weighted Graph (3:29)
Shortest Path In A Weighted Graph - A Greedy Algorithm (18:47)
Dijkstra's Algorithm Visualized (14:14)
Implementation Of Dijkstra's Algorithm (8:15)
Introduction To The Bellman Ford Algorithm (8:40)
The Bellman Ford Algorithm Visualized (11:22)
Dealing With Negative Cycles In The Bellman Ford Algorithm (7:36)
Implementation Of The Bellman Ford Algorithm (6:54)
Spanning Tree Algorithms
Prim's Algorithm For a Minimal Spanning Tree (17:27)
Kruskal's Algorithm For a Minimal Spanning Tree (8:43)
Implementation Of Kruskal's Algorithm (7:34)
Graph Problems
Design A Course Schedule Considering Pre-reqs For Courses (13:01)
Find The Shortest Path In A Weighted Graphs - Fewer Edges Better (14:31)
Dijkstra's Algorithm Visualized
Lesson content locked
If you're already enrolled,
you'll need to login
.
Enroll in Course to Unlock