Introduction
  • Introduction
Trie Data Structures (Prefix Trees)
  • What are tries (prefix trees)?
  • Prefix tree introduction - insertion and searching
  • Prefix tree introduction - sorting
  • Prefix tree introduction - autocomplete
  • Prefix tree introduction - associative arrays
  • Tries implementation I
  • Tries implementation II
  • Tries implementation III
  • Tries implementation IV - associative arrays
  • Tries implementation V - autocomplete
  • Tries implementation VI - sorting
  • Hashing based data structures and tries
  • Applications of trie data structures
  • Trie Data Structures Quiz
Interview Questions - IP Routing with Tries
  • Networking and the longest common prefix problem
  • Longest common prefix implementation
Ternary Search Trees (TSTs)
  • What are ternary search trees?
  • Ternary search tree visualization
  • Ternary search tree implementation - insertion
  • Recursion and stack memory visualization
  • Ternary search tree implementation - search
  • Ternary search trees implementation - traversal
  • Ternary Search Trees Quiz
Interview Questions - Boggle Game
  • What is boggle and how to solve it?
  • Boggle game with ternary search tree implementation I
  • Boggle game with ternary search tree implementation II
  • Boggle game with ternary search tree implementation III
Substring Search
  • Brute-force search introduction
  • Brute-force search implementation
  • Naive Substring Search Quiz
  • Rabin-Karp algorithm introduction
  • Rabin-Karp algorithm implementation
  • Rabin-Karp Algorithm Quiz
  • Knuth-Morris-Pratt algorithm introduction
  • Constructing the partial match table
  • Knuth-Morris-Pratt algorithm implementation
  • Knuth-Morris-Pratt Algorithm Quiz
  • Z algorithm introduction
  • Z algorithm illustration
  • Z algorithm implementation
  • Z Algorithm Quiz
  • Substring search algorithms comparison
  • Applications of substring search
Strings
  • Strings and the String Constant Pool (Intern Pool)
  • String's immutability
  • Strings and StringBuilders
  • String reversion
  • Suffixes
  • Prefixes
  • Longest common prefix
  • Longest repeated substring problem
  • Why are suffix tries and suffix arrays useful?
  • String Quiz
Basic Sorting Algorithms
  • Sorting introduction
  • What is stability in sorting?
  • Adaptive sorting algorithms
  • Sorting Algorithms Basics Quiz
  • Bogo sort introduction
  • Bogo sort implementation
  • Bogo Sort Quiz
  • Bubble sort introduction
  • Bubble sort implementation
  • Selection sort introduction
  • Selection sort implementation
  • Selection Sort Quiz
  • Insertion sort introduction
  • Insertion sort implementation
  • Insertion Sort Quiz
  • Shell sort introduction
  • Shell sort implementation
  • Shell Sort Quiz
  • Quicksort introduction
  • Quicksort introduction - example
  • Quicksort implementation
  • Hoare's partitioning and Lomuto's partitioning
  • What is the worst-case scenario for quicksort?
  • QuickSort Quiz
  • Merge sort introduction
  • Merge sort implementation
  • Merge sort and stack memory visualization
  • Merge Sort Quiz
  • Hybrid algorithms introduction
  • Non-comparison based algorithms
  • Counting sort introduction
  • Counting sort implementation
  • Radix sort introduction
  • Radix sort implementation
  • Non-Comparison Based Sorting Quiz
Interview Questions - Sorting
  • Interview question #1 - implementing TimSort algorithm
  • Interview question #1 - solution