Data Structures And Algorithms In Python
Published 9/2023
MP4 | Video: h264, 1280x720 | Audio: AAC, 44.1 KHz
Language: English | Size: 2.83 GB | Duration: 11h 39m
Published 9/2023
MP4 | Video: h264, 1280x720 | Audio: AAC, 44.1 KHz
Language: English | Size: 2.83 GB | Duration: 11h 39m
Visualize the inner workings of data structures and algorithms, line by line, through comprehensive animations
What you'll learn
Understand how computers store and work with data
Analyze the space and memory utilization of any algorithm using the Big O Notation
Dive deep into the mechanisms of function execution and demystify the concept of Recursion
Implement from scratch the most common 9 Data Structures
Understand how the best known 8 sorting algorithms work
Learn the searching / traversing algorithms for trees and graphs
Improve your problem solving skills
Learn the behind the scenes of the basic data structures (arrays and hash maps)
Understand common programming patterns
Learn everything you need to know for the technical interview
Requirements
Basic coding concepts in any programming language
No previous data structures and algorithms knowledge needed
A computer to practice on (Windows, Mac or Linux)
Description
Building reliable and highly performant software requires knowledge that goes beyond a certain programming language or framework. It requires a solid understanding of how data is organized in memory, how it can be manipulated, sorted or searched into. There’s a reason why all the big tech companies such as Google, Amazon or Netflix focus their technical interviews on those topics. Whether you do mobile apps, websites, games, machine learning or any other work that involves coding, you need a good grasp of Data Structures and Algorithms. Many self taught developers and aspiring engineers often feel they lack the knowledge when having to decide on the right data structure or the right approach for solving a problem. If you ever felt that way, this material is the right choice for you. This course packs months of Computer Science subject matter to get you on the same level of proficiency as someone with a Computer Science degree.What sets us apart ? Every video begins with an in depth analysis of the topic at hand. At this stage we won’t write any code yet, but rather learn how to approach the problem, think of ways we could solve it and build a mental model of the solution. We then go on to code the algorithm step by step. But we don’t stop there. We take one or more examples and walk through the code line by line. And we mean that literally. You will see how the code runs from top to bottom and how data flows and changes during execution. We find this method the absolute best way to really understand the inner workings of an algorithm. We’ll also analyze the time performance and space utilization of every algorithm and method we write using the Big O Notation. We’ll talk about the strengths and weaknesses of each data structure and discuss their real world usage. Apart from all of that, you’ll also learn things like recursion, how computers work under the hood, problem solving techniques, common programming patterns and much more.What does this course cover ?How computers work under the hoodWhat a data structure isWhat an algorithm isProblem solving techniquesBig O Notation - how to analyze the time performance and space utilization of algorithms. This is done for every single function/algorithm we write.Gain a deeper understanding of how code worksRecursionData Structures:ArraysHash TablesSingly Linked ListsDoubly Linked ListsStacksQueuesBinary Search TreesTree TraversalHeapsGraphsSorting Algorithms:Insertion SortSelection SortBubble SortShell SortHeap SortMerge SortQuick SortRadix SortThanks for considering, and I hope this course will help you in your journey. Happy learning!
Overview
Section 1: Introduction
Lecture 1 Course objectives, structure and more
Lecture 2 How computers work
Lecture 3 What are algorithms
Lecture 4 What are data structures
Section 2: The Big O Notation
Lecture 5 Intro
Lecture 6 Constant O(1)
Lecture 7 Linear O(n)
Lecture 8 Quadratic O(n2)
Lecture 9 Logarithmic O(logn)
Lecture 10 Space Complexity
Lecture 11 Asymptotic Complexity
Section 3: Recursion
Lecture 12 The Call Stack and function execution
Lecture 13 What is Recursion
Lecture 14 Potential Problems
Lecture 15 Recursion vs Iteration
Lecture 16 Big O of Recursive Functions
Section 4: Arrays and Hash Tables
Lecture 17 Arrays
Lecture 18 Big O of Arrays
Lecture 19 Hash Tables (Dictionaries)
Lecture 20 Big O of Hash Tables
Section 5: Singly Linked Lists
Lecture 21 Intro
Lecture 22 Append
Lecture 23 Prepend
Lecture 24 Pop Left
Lecture 25 Pop Right
Lecture 26 Remove
Lecture 27 Reverse
Lecture 28 Recap
Lecture 29 A note on the last video
Section 6: Doubly Linked Lists
Lecture 30 Intro
Lecture 31 Append
Lecture 32 Prepend
Lecture 33 Pop Left
Lecture 34 Pop Right
Lecture 35 Remove
Lecture 36 Recap
Section 7: Stacks and Queues
Lecture 37 Stacks - Intro
Lecture 38 Stacks - Array Implementation
Lecture 39 Stacks - Linked Lists Implementation
Lecture 40 Stacks - Recap
Lecture 41 Queues - Intro
Lecture 42 Queues - Linked Lists Implementation
Lecture 43 Queues - Deques
Section 8: Binary Search Trees
Lecture 44 Trees Intro
Lecture 45 Binary Search Trees Intro
Lecture 46 Insert
Lecture 47 Contains
Lecture 48 Remove Intro
Lecture 49 Remove Node no children
Lecture 50 Remove Node one child
Lecture 51 Remove Node two children
Section 9: Tree Traversal
Lecture 52 Intro
Lecture 53 Breadth First Traversal
Lecture 54 DFT Pre Order Iterative
Lecture 55 DFT Pre Order Recursive
Lecture 56 DFT In Order Iterative
Lecture 57 DFT In Order Recursive
Lecture 58 DFT Post Order Iterative
Lecture 59 DFT Post Order Recursive
Lecture 60 Recap
Section 10: Heaps
Lecture 61 Intro
Lecture 62 Insert
Lecture 63 Remove Max
Lecture 64 Heapify
Section 11: Graphs
Lecture 65 Intro
Lecture 66 Adding Vertices and Edges
Lecture 67 Removing Vertices and Edges
Lecture 68 Breadth First Traversal
Lecture 69 Depth First Traversal Iterative
Lecture 70 Depth First Traversal Recursive
Section 12: Sorting
Lecture 71 Intro
Lecture 72 Insertion Sort
Lecture 73 Selection Sort
Lecture 74 Bubble Sort
Lecture 75 Shell Sort
Lecture 76 Heap Sort
Lecture 77 Merge Sort
Lecture 78 Quick Sort
Lecture 79 Radix Sort
Section 13: Congratulations
Lecture 80 Congratulations and thank you
Self-taught engineers with a career in a different field that want to switch to the tech industry,Anyone who is preparing for a technical interview,Engineers who want to build better tech fluency, land better roles, and push their career to new heights,Computer Science students who want to supplement their studies with alternative learning materials