From 0 to 1: Data Structures & Algorithms in Java

From 0 to 1: Data Structures & Algorithms in Java
From 0 to 1: Data Structures & Algorithms in Java
English | MP4 | AVC 1280×720 | AAC 44KHz 2ch | 15 Hours | 3.64 GB

Learn so you can see it with your eyes closed

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.

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
Table of Contents

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