Skip to content

Latest commit

 

History

History
38 lines (25 loc) · 1.75 KB

part04-algorithmic-toolbox.asc

File metadata and controls

38 lines (25 loc) · 1.75 KB

Algorithmic Toolbox

In this part of the book, we will cover examples of classical algorithms in more detail. Also, we will provide algorithmic tools for improving your problem-solving skills.

Important
There’s no single approach to solve all problems, but knowing well-known techniques can help you build your own faster.

We are going to start with [Sorting Algorithms] such as [insertion-sort], [merge-sort] and some others. Later, you will learn some algorithmic paradigms that will help you identify common patterns and solve problems from different angles.

We are going to discuss the following techniques for solving algorithms problems:
  • [Greedy Algorithms]: makes greedy choices using heuristics to find the best solution without looking back.

  • [dynamic-programming-chap]: a technique for speeding up recursive algorithms when there are many overlapping subproblems. It uses memoization to avoid duplicating work.

  • [Divide and Conquer]: divide problems into smaller pieces, conquer each subproblem, and then join the results.

  • [Backtracking]: search all (or some) possible paths. However, it stops and go back as soon as notice the current solution is not working.

  • Brute Force: generate all possible solutions and tries all of them. (Use it as a last resort or as the starting point and to later optimize it).