Bored by the academic approach of most data structures and algorithms courses? This is for you! You'll learn to solve algorithms and analyze space and time complexity in both an interview setting and in your day-to-day development. Following along with the course, you'll practice algorithms with common interview questions using a handful of algorithm techniques. Take a practical look at recursion and learn to optimize your solutions using divide-and-conquer. Implement merge sort and quicksort and understand tradeoffs of both approaches. Plus, get started with dynamic programming and memoization!
Overview
Syllabus
- Introducing Practical Guide to Algorithms
- Introducing Space & Time Complexity
- Native Methods & JavaScript
- Big O Notation
- Space Complexity & Review
- Big O: Loop
- Big O: Property Lookup
- Big O: Push, Shift, & Unshift
- Faster Algorithms
- Unique Sort Exercise
- Unique Sort Solution
- Caching with Memoization
- Basic Memoization Exercise
- Basic Memoization Solution
- Memoization with Closure Exercise
- Memoization with Closure Solution
- Generic Memoize Function Exercise
- Generic Memoize Function Solution
- Reviewing Optimization
- Introducing Recursion
- Call Stack Walkthrough
- Looping with Recursion
- Factorial with a Loop
- Looping Review
- Wrapper Functions
- Accumulators
- Iterative Loop Exercise
- Iterative Loop Solution
- Recursive Factorial & Memoize Exercise
- Recursive Factorial & Memoize Solution
- Introducing Divide & Conquer
- Linear Search Exercise
- Linear Search Solution
- Binary Search
- Divide & Conquer Review
- Sorting Types
- Merge Sort
- Merge Sort Walkthrough
- Bubble Sort & Merge Sort Exercise
- Bubble Sort Solution
- Merge Sort Solution
- Introducing Greedy
- Greedy Algorithms Walkthrough
- Brute Force
- Introducing Dynamic Programming
- Memoization with Recursion
- The Landscape of Data Structures & Algorithms
Taught by
Bianca Gandolfo