O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

From 0 to 1: Data Structures & Algorithms in Java

Video Description

Learn so you can see it with your eyes closed

About This Video

  • Data Structures and Algorithms are best learnt visually - high-quality courses available at super low prices

In Detail

This is an animated, visual and spatial way to learn data structures and algorithms. Our brains process different types of information differently - evolutionary we are wired to absorb information best when it is visual and spatial i.e. when we can close our eyes and see it. More than most other concepts, Data Structures and Algorithms are best learnt visually. These are incredibly easy to learn visually, very hard to understand most other ways. This course has been put together by a team with tons of everyday experience in thinking about these concepts and using them at work at Google, Microsoft and Flipkart What's Covered: Big-O notation and complexity, Stacks, Queues, Trees, Heaps, Graphs and Graph Algorithms, Linked lists, Sorting, Searching.

Table of Contents

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