Learn algorithms (Copy)

Subject: Data Models and Algorithms

50 chapters

Chapters

  1. Quicksort
    funk, disco, retro, groovy · 4:04
    Dive into the elegantly recursive world of Quicksort, the sorting algorithm invented by Tony Hoare, as you learn how choosing a pivot element and partitioning values into left and right groups creates a powerful divide-and-conquer approach to organizing data.
  2. Quicksort Fundamentals: Divide and Conquer Strategy
    rock, electric guitar, powerful, anthem · 3:59
    Quicksort Fundamentals breaks down one of programming's most powerful sorting algorithms, teaching you how to use a pivot element to partition data and apply recursive divide-and-conquer logic to sort arrays efficiently.
  3. Partition Logic: The Heart of Quicksort
    funk, disco, retro, groovy · 4:39
    Partition Logic: The Heart of Quicksort breaks down the core mechanism that makes Quicksort work, revealing how pivot selection and the coordinated dance of left and right pointers efficiently divide an array into smaller and larger elements.
  4. Quicksort Performance: Best, Average, and Worst Cases
    jazz, smooth, saxophone, lounge · 5:31
    Diving into the performance analysis of Quicksort, this track breaks down how pivot selection and partitioning lead to dramatically different outcomes across best, average, and worst-case scenarios, giving listeners a clear understanding of what drives the algorithm's time complexity.
  5. Quicksort Gotchas: Edge Cases and Optimization Tricks
    acoustic, folk, soulful, warm · 4:04
    Dive into the common pitfalls that trip up developers when implementing quicksort, from null pointer crashes to missing base cases, and discover the defensive coding habits that will make your implementation bulletproof.
  6. Mergesort
    funk, disco, retro, groovy · 4:20
    Dive into the elegant world of Mergesort, a powerful divide-and-conquer algorithm that tackles messy arrays by recursively splitting them down to single elements before rebuilding them in perfect order.
  7. Heapsort
    lo-fi, ambient, dreamy, relaxed · 4:28
    Dive into Heapsort, one of computing's most elegant sorting algorithms, and discover how binary heaps are built and leveraged to efficiently arrange data from largest to smallest.
  8. Insertion sort
    symphonic, cinematic, dramatic, orchestral · 4:16
    Insertion sort breaks down one of the most intuitive sorting algorithms, showing how elements are systematically compared and shifted into their correct positions—much like sorting a hand of playing cards.
  9. Bubble sort
    funk, disco, retro, groovy · 4:17
    Dive into bubble sort, one of the most fundamental sorting algorithms, and learn how repeated comparisons and swaps gradually push the largest values to the end of a list until everything falls into order.
  10. Radix sort
    lo-fi, ambient, dreamy, relaxed · 4:03
    Dive into Radix sort, a powerful non-comparative algorithm that sorts integers digit by digit, starting from the least significant — unlocking a smarter approach when traditional sorting methods can't keep up.
  11. Counting sort
    lo-fi, ambient, dreamy, relaxed · 3:58
    Dive into counting sort, a powerful algorithm that thrives when working with data confined to a limited range, offering lightning-fast linear time complexity under the right conditions.
  12. Timsort
    acoustic, folk, soulful, warm · 4:17
    Dive into Timsort, Python's powerful hybrid sorting algorithm that cleverly combines insertion sort and merge sort to handle real-world data with remarkable efficiency.
  13. Binary search
    funk, disco, retro, groovy · 4:47
    A deep dive into binary search, one of computer science's most elegant algorithms, teaching you how to efficiently locate values in sorted lists by strategically halving your search space instead of scanning every element.
  14. Linear search
    symphonic, cinematic, dramatic, orchestral · 3:57
    Dive into the fundamentals of linear search, one of the simplest searching algorithms, and learn how to systematically scan through an array element by element until finding your target value.
  15. Interpolation search
    symphonic, cinematic, dramatic, orchestral · 3:47
    Interpolation search takes binary search to the next level by using mathematical prediction to estimate where a target value likely lives in a dataset, rather than always splitting in half — a smarter approach that shines when data is uniformly distributed.
  16. Exponential search
    funk, disco, retro, groovy · 4:22
    Exponential Search breaks down a powerful algorithm for efficiently locating elements in sorted arrays by combining exponential range-finding with binary search, showing you how doubling index bounds can dramatically speed up searches when your target lies far from the start.
  17. Breadth-first search (BFS)
    lo-fi, ambient, dreamy, relaxed · 3:36
    Breadth-first search (BFS) is a graph traversal algorithm that explores nodes level by level, starting from a root and spreading outward before going deeper. Listeners will learn how BFS uses a queue to systematically visit neighbors in order, making it ideal for finding shortest paths and exploring graphs layer by layer.
  18. Depth-first search (DFS)
    lo-fi, ambient, dreamy, relaxed · 3:41
    Dive into the world of depth-first search, a powerful graph traversal algorithm that explores as far as possible along each path before backtracking. You'll learn how DFS works using both recursive and iterative stack-based approaches to navigate nodes and uncover connections within a graph.
  19. What is Dijkstra's Algorithm?
    rock, electric guitar, powerful, anthem · 4:13
    Dive into Dijkstra's Algorithm, the classic graph-traversal method for finding the shortest weighted path between nodes. You'll learn how it works step by step, from initializing distances to using a priority queue to efficiently reach the optimal solution.
  20. Graph Theory Basics for Shortest Paths
    jazz, smooth, saxophone, lounge · 5:19
    Dive into the fundamentals of graph theory, exploring how nodes, edges, and weights form the foundation for solving shortest path problems. Learn when to apply Dijkstra's algorithm versus breadth-first search to efficiently navigate from one vertex to another.
  21. How Dijkstra's Algorithm Works
    symphonic, cinematic, dramatic, orchestral · 4:04
    A deep dive into Dijkstra's Algorithm, one of computer science's most elegant pathfinding solutions, covering how it uses priority queues, weighted edges, and greedy local choices to efficiently calculate the shortest path between nodes in a graph.
  22. Dijkstra vs Other Path-Finding Algorithms
    jazz, smooth, saxophone, lounge · 4:58
    Dive into the world of shortest path algorithms as Dijkstra's method goes head-to-head with its rivals, revealing how each handles different graph challenges like negative weights and varying data structures.
  23. Implementation and Time Complexity
    rock, electric guitar, powerful, anthem · 4:02
    Dive into the world of algorithmic efficiency as Big O notation breaks down how code performs at scale, exploring the speed differences between linear, quadratic, and constant time operations across essential data structures like hash tables and arrays.
  24. Bellman-Ford algorithm
    rock, electric guitar, powerful, anthem · 4:38
    Dive into the Bellman-Ford algorithm, a powerful method for finding shortest paths in weighted graphs that handles negative edge weights with ease, walking you through initialization, relaxation iterations, and the systematic edge-checking process step by step.
  25. Floyd-Warshall algorithm
    symphonic, cinematic, dramatic, orchestral · 3:54
    A deep dive into the Floyd-Warshall algorithm, breaking down how three nested loops and intermediate vertices work together to find the shortest paths between every pair of nodes in a graph.
  26. A* search
    lo-fi, ambient, dreamy, relaxed · 4:19
    Dive into A* search, a powerful pathfinding algorithm that combines the efficiency of heuristics with guaranteed shortest-path results, showing you how it outperforms Dijkstra's and breadth-first search using techniques like Manhattan distance.
  27. Topological sort
    funk, disco, retro, groovy · 3:54
    Topological sort breaks down how to order tasks in a directed acyclic graph (DAG), teaching you how algorithms like Kahn's method use in-degree counts to determine the correct sequence when certain steps must come before others.
  28. Tarjan's algorithm (strongly connected components)
    funk, disco, retro, groovy · 4:12
    Dive into Tarjan's algorithm and discover how to efficiently identify strongly connected components in a directed graph using a single depth-first traversal. You'll learn how discovery times and low-link values work together to reveal clusters of nodes where every vertex can reach every other.
  29. Kosaraju's algorithm
    symphonic, cinematic, dramatic, orchestral · 4:12
    Dive into Kosaraju's algorithm for finding strongly connected components in directed graphs, learning how its elegant two-pass depth-first search approach uses finish times and graph transposition to group closely related nodes together.
  30. Prim's algorithm
    funk, disco, retro, groovy · 4:22
    Dive into Prim's algorithm and discover how to efficiently build a minimum spanning tree by strategically selecting edges and vertices from a weighted graph. You'll learn the step-by-step process of growing a connected tree while minimizing total edge weight.
  31. Kruskal's algorithm
    lo-fi, ambient, dreamy, relaxed · 3:53
    Dive into Kruskal's algorithm, a clever method for finding the minimum spanning tree in a weighted graph by sorting edges from cheapest to most expensive and strategically connecting vertices using a union-find structure.
  32. Knuth-Morris-Pratt (KMP)
    rock, electric guitar, powerful, anthem · 3:36
    Dive into the Knuth-Morris-Pratt algorithm and discover how it revolutionizes pattern searching in strings by eliminating the inefficiencies of brute force methods, slashing time complexity from O(n×m) down to a blazing O(n+m).
  33. Rabin-Karp
    rock, electric guitar, powerful, anthem · 3:51
    Dive into the Rabin-Karp string searching algorithm, where rolling hash functions and modular arithmetic make pattern matching faster and smarter than brute force methods.
  34. Boyer-Moore
    funk, disco, retro, groovy · 4:25
    Dive into the Boyer-Moore string searching algorithm, an efficient alternative to naive pattern matching that uses precomputed tables to intelligently skip comparisons and dramatically speed up the search process.
  35. Aho-Corasick
    funk, disco, retro, groovy · 4:30
    Dive into the Aho-Corasick algorithm, a powerful technique for efficiently searching multiple patterns within a string simultaneously. You'll learn how building a trie and leveraging failure links transforms a slow brute-force approach into an elegant, high-performance solution.
  36. Levenshtein distance (edit distance)
    symphonic, cinematic, dramatic, orchestral · 4:07
    Levenshtein distance breaks down the algorithm for measuring how similar two strings are by calculating the minimum number of insertions, deletions, and substitutions needed to transform one into the other. You'll learn how dynamic programming builds up the solution efficiently, turning a complex comparison problem into a systematic table-filling process.
  37. Fibonacci (memoized)
    symphonic, cinematic, dramatic, orchestral · 3:38
    Discover how memoization transforms the classic Fibonacci sequence from a sluggish, redundant recursive solution into a lightning-fast algorithm by caching previously computed values and eliminating costly recalculations.
  38. Longest common subsequence
    rock, electric guitar, powerful, anthem · 3:54
    Dive into the classic dynamic programming problem of finding the longest common subsequence between two strings, where you'll learn how to identify shared elements in order while skipping non-matching characters along the way.
  39. Longest increasing subsequence
    symphonic, cinematic, dramatic, orchestral · 4:01
    Dive into the Longest Increasing Subsequence problem, where dynamic programming breaks down the challenge of finding the longest climbing sequence within an array into manageable subproblems built from the ground up.
  40. Knapsack (0/1 and unbounded)
    jazz, smooth, saxophone, lounge · 5:02
    Dive into the classic knapsack problem as dynamic programming breaks down how to maximize value when packing items with limited capacity, covering both the 0/1 variant (where each item can only be taken once) and the unbounded version (where items can be reused).
  41. Matrix chain multiplication
    symphonic, cinematic, dramatic, orchestral · 4:16
    Dive into the world of matrix chain multiplication, where the order of operations can make or break your algorithm's efficiency. You'll discover how strategic parenthesization minimizes computational cost and why choosing the right sequence is a game-changer for performance.
  42. Coin change
    acoustic, folk, soulful, warm · 4:02
    Dive into the classic coin change problem, a foundational challenge in dynamic programming that teaches you how to find the minimum number of coins needed to hit an exact target amount — and why the intuitive greedy approach doesn't always give you the optimal answer.
  43. Edit distance
    jazz, smooth, saxophone, lounge · 5:22
    Explore the edit distance algorithm, a classic dynamic programming technique that calculates the minimum number of insertions, deletions, and substitutions needed to transform one string into another, using the Wagner-Fischer method to efficiently build up solutions step by step.
  44. Binary search tree operations
    acoustic, folk, soulful, warm · 3:47
    Dive into the fundamental operations of binary search trees, exploring how data is organized, inserted, and navigated using a simple but powerful rule: smaller values go left, larger values go right.
  45. AVL tree rotations
    symphonic, cinematic, dramatic, orchestral · 3:47
    Dive into the world of AVL tree rotations and discover how to keep binary search trees perfectly balanced by mastering the four key rotation cases that restore efficiency when a tree becomes too heavy on one side.
  46. Red-black tree balancing
    jazz, smooth, saxophone, lounge · 4:11
    Dive into the world of red-black trees and discover how this clever self-balancing data structure uses color-coded nodes and four essential rules to guarantee efficient search times and avoid the pitfalls of unbalanced binary search trees.
  47. B-tree insertion/deletion
    lo-fi, ambient, dreamy, relaxed · 3:47
    Dive into the mechanics of B-tree insertion and deletion, exploring how this powerful balanced tree structure maintains order through splitting full nodes and merging sparse ones, all governed by minimum degree rules.
  48. Trie operations
    jazz, smooth, saxophone, lounge · 5:09
    Dive into the world of trie data structures and master the core operations of inserting and searching words by navigating character-by-character through a prefix tree, where each node branches up to twenty-six children.
  49. Huffman coding
    jazz, smooth, saxophone, lounge · 4:34
    Dive into Huffman coding, the clever compression algorithm that assigns shorter binary codes to more frequent symbols, making files smaller and data transfer faster.
  50. Chaining
    rock, electric guitar, powerful, anthem · 5:17
    Dive into the world of linked lists, where dynamic memory allocation and pointer-based connections solve the limitations of static arrays. You'll learn how nodes chain together to enable efficient insertions and deletions without the costly shifting of traditional data structures.