From 0 to 1: Data Structures & Algorithms in Java

Video description

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 learned 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.

What You Will Learn

  • Visualise - really vividly imagine - the common data structures, and the algorithms applied to them
  • Pick the correct tool for the job - correctly identify which data structure or algorithm makes sense in a particular situation
  • Calculate the time and space complexity of code - really understand the nuances of the performance aspects of code

Audience

Yep! Computer Science and Engineering grads who are looking to really visualise data structures, and internalise how they workYep! Experienced software engineers who are looking to refresh important fundamental concepts

About The Author

Loonycorn: Janani Ravi is a certified Google Cloud Architect and Data Engineer. She has earned her master's degree in electrical engineering from Stanford. She is currently in Loonycorn, a technical video content studio, of which she is a cofounder. Prior to co-founding Loonycorn, she worked at various leading companies, such as Google and Microsoft, for several years as a software engineer.

Table of contents

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

Product information

  • Title: From 0 to 1: Data Structures & Algorithms in Java
  • Author(s): Loonycorn
  • Release date: September 2017
  • Publisher(s): Packt Publishing
  • ISBN: 9781788626767