Autoplay
Autocomplete
Previous Lesson
Complete and Continue
Algorithms and Software Engineering for Professionals
Introduction
Introduction (4:23)
Iterations and Transformations on Sequence’s
Iterations (4:31)
Iterations Lab 1 Count Condition Loops with Java 8 Streams (2:30)
Iterations with Java Collections . (4:18)
Iterations Lab 2 LinkedList Unsafe iteration on Queues (2:24)
Iterations with Java Maps and Streams (4:36)
Iterations Lab 3 Matching Pattern Sequences with iterations Part A (0:01)
Iterations Lab 3 Matching Pattern Sequences with iterations Part B (4:18)
Time Complexity
Time Complexity (4:08)
Big O specific calculation (3:11)
Time Complexity Lab 1 Practical Obtain Sequence Introduction (4:31)
Time Complexity Lab 1 Practical Task Obtain Sequence Solutions (3:48)
Array Operations 1 Equilibrium Index (4:25)
Array Operations 2 Optimal Index (3:51)
Sorting Arrays (4:13)
Time Complexity Lab 2 Array task with Expected Worst case time complexity O(n) (3:26)
Space complexity (4:08)
Sorting Algorithms Time and Space complexity (3:45)
Common Sorting Algorithms best and worst case (3:58)
Time Complexity Lab 3 Sorting Algorithm efficiency (4:44)
Counting and Optimisation
Counting Concepts (3:13)
Sliding window maxima and minima (4:53)
Counting and Optimisation Lab 1 Application of a Sliding window (3:11)
Counting and Optimisation Lab 1 Application of a Sliding window Part B (4:22)
Counting Patterns (3:37)
Count Combinations (4:18)
Count Permutations (4:23)
"Counting and Optimisation Lab 2 Application of Counting to Permutations " (4:29)
Counting Theorem for Algorithms (3:39)
Counting Sort (4:35)
Pigeonhole Sort (4:33)
Counting and Optimisation Lab 3 Application of the Counting Theorem (4:15)
Sorting
Sorting Concepts (4:44)
Implement Insertion Sort with comparator (4:07)
Sorting Lab 1 Introduction (3:54)
Sorting Lab 1 Compute the number of distinct values in array of N integers. (3:27)
Breaking the Quadratic time barrier (4:55)
Implement Heap Sort (4:36)
Recursive Sorting Algorithms (4:36)
Implement MergeSort (4:33)
Sorting Lab 2 Practical Optimise subsequences (4:31)
Implement Radix sort Part A (3:44)
Implement Radix sort Part B (3:25)
Sorting Lab 3 Practical Radix Sort on String Arrays (4:26)
Stacks and Queues
Stack Concepts (4:24)
Implement a basic Stack with a Linked List (4:40)
Perform simple stack algorithm with Reverse Polish notation (3:43)
Stacks and Queues Lab 1 Application of a Stack (3:27)
Queue Concepts (4:20)
Implement a basic Queue with a Linked List (3:33)
Practical Application of a Queue (4:25)
Stacks and Queues Lab 2 Practical Application of a Queue (4:16)
Parsing Concepts (4:43)
Implement a simple AST parser (4:25)
Stacks and Queues Lab 3 Test for Well Formed Expressions (4:15)
Divisibility Operations and Primes
Slice Operations (4:54)
Implement Kadane's algorithm (4:51)
Implement a double-slice operation (3:46)
Slice Operations Lab 1 Application of a slice operation Part A (4:06)
Slice Operations Lab 1 Application of a slice operation Part B (4:29)
Divisibility Operations (4:42)
Implement Euclidean algorithm (common factors) (4:04)
Implement a test for a prime number (4:59)
Slice Operations Lab 2 Simple Peak detection (3:06)
Slice Operations Lab 2 Simple Peak detection Part B (4:54)
Divisibility Operations and Primes (4:53)
Sieving (finding prime numbers) (4:36)
Slice Operations Lab 3 Probabilistic Tests for Large Primes Part A (4:44)
Slice Operations Lab 3 Probabilistic Tests for Large Primes Part B (4:42)
Tree Based Algorithms
Search Algorithms (4:41)
Implement a Binary search (4:45)
Implement a Hash table (4:45)
Tree Based Algorithms Lab 1 Binary search algorithm optimisation (4:47)
Binary Trees (4:35)
Implement a Binary Search Tree (4:41)
Binary Tree recursion (3:50)
Tree Based Algorithm Lab 2 Extend the Binary Tree API (4:03)
Avl Trees (4:22)
Implement a Avl Tree (4:52)
Sub Trees and Paths (3:40)
Tree Based Algorithm Lab 3 Tree Traversal (Paths) (4:34)
Graph Algorithms
Graphs Concepts (4:56)
Implement a Graph as a Abstract Data Type (ADT) (4:43)
Implement a Depth-first search (4:42)
Graph Algorithms Lab 1 Path Search with dfs (3:44)
Implement a Directed Graph as a Abstract Data Type (ADT) (4:02)
Implement a Breadth-first search (4:40)
Graph Algorithms Lab 2 Breadth First Search (4:24)
Topological Sort (4:45)
Implement a Topological sort (4:46)
Graph Algorithms Lab 3 Shortest Path Optimisation (4:32)
Algorithm Design
Greedy Programming Concepts (4:43)
Implement a Greedy Solution (4:22)
Algorithm Design Lab 1 Overlapping Segment Application (3:40)
Dynamic Programming Concepts (4:46)
Implement a Dynamic Solution (4:55)
Algorithm Design Lab 2 Optimise Stock Trades Part A (3:35)
Algorithm Design Lab 2 Optimise Stock Trades Part B (3:41)
Divide-and-Conquer Concepts (4:05)
Implement a Divide-and-Conquer Solution (4:52)
Algorithm Design Lab 3 Count the Unique Inversions (4:09)
Counting Patterns
Lesson content locked
If you're already enrolled,
you'll need to login
.
Enroll in Course to Unlock