Algorithmic Problems in Java

Algorithmic Problems in Java
Algorithmic Problems in Java
English | MP4 | AVC 1280×720 | AAC 48KHz 2ch | 7 Hours | 948 MB

Backtracking, dynamic programming, Sudoku, knapsack problem, binpacking, closest pair of points, recursion, monte carlo

This course is about the fundamental concepts of algorithmic problems, focusing on backtracking and dynamic programming. As far as I am concerned these techniques are very important nowadays, algorithms can be used (and have several applications) in several fields from software engineering to investment banking or research & development.

The first chapter is about backtracking: we will talk about problems such as N-queens problem or hamiltonian cycles, coloring problem and Sudoku problem. In the second chapter we will talk about dynamic programming, theory then the concrete examples one by one: fibonacci sequence problem and knapsack problem.

In each section we will talk about the theoretical background for all of these algorithms then we are going to implement these problems together from scratch in Java.

What Will I Learn?

  • Understand backtracking
  • Understand dynamic programming
  • Understand recursive approaches
  • Solve problems from scratch
Table of Contents

1 Introduction
2 Course Materials

3 Recursion introduction
4 Adding numbers iteration vs recursion
5 House building problem
6 Factorial function
7 Euclidean algorithm – greatest common divisor
8 Linear and binary search introduction
9 Linear and binary search implementation
10 Towers of Hanoi problem introduction
11 Tower of Hanoi problem implementation

Selection Algorithms
12 Selection algorithms introduction
13 Quickselect introduction – Hoare algorithm
14 Quickselect simulation
15 Quickselect implementation
16 Advanced selection – median of medians introselect
17 Online selection – the secretary problem

18 Backtracking introduction
19 N-queens problem introduction
20 N-queens problem implementation I
21 N-queens problem implementation II
22 Hamiltonian cycle introduction
23 Hamiltonian cycle illustration
24 Hamiltonian cycle implementation I
25 Hamiltonian cycle implementation II
26 Coloring problem introduction
27 Coloring problem implementation I
28 Coloring problem implementation II
29 Knights tour introduction
30 Knights tour implementation I
31 Knights tour implementation II
32 Maze problem introduction
33 Maze problem implementation I
34 Maze problem implementation II
35 Sudoku introduction
36 Sudoku implementation I
37 Sudoku implementation II
38 NP-complete problems

Dynamic Programming
39 Dynamic programming introduction
40 Fibonacci numbers introduction
41 Fibonacci numbers implementation
42 Knapsack problem introduction
43 Knapsack problem example
44 Knapsack problem implementation I
45 Knapsack problem implementation II
46 Coin change problem introduction
47 Coin change problem example
48 Coin change problem implementation
49 Rod cutting problem introduction
50 Rod cutting problem example
51 Rod cutting problem implementation
52 Subset sum problem introduction
53 Subset sum problem example
54 Subset sum problem implementation

Other Algorithmic Problems
55 Bin packing problem introduction
56 Bin packing problem implementation
57 Closest pair of points problem introduction
58 Closest pair of points problem implementation
59 Palindrome problem
60 Integer reversion