# See in Action

As you already know, algorithms are almost everywhere, and there are many types and classifications. They are supported by numerous data structures and some of them you learned while reading the previous chapters. After some theoretical parts, it is high time to keep on practicing, based on interesting examples. They are chosen from various types of algorithms, summarizing many subjects that you have got to know.

First, you will see how to calculate a given number from the **Fibonacci series** in a few variants that differ significantly in performance results, so you will get to know how you can optimize your code. Sometimes, even small changes can lead to huge performance improvements. Then, you will learn how to apply the greedy approach to solve the **minimum coin change** problem, as well as how to benefit from the divide-and-conquer algorithm to find the **closest pair of points** located on the two-dimensional surface. You will also see a beautiful **fractal** and the code that...