To successfully pass an interview in the most popular fields at the EPAM training center, you must possess knowledge of algorithms. Therefore, this introductory article will focus on algorithms. The topic of algorithms is very broad. However, we will try to understand the basics of algorithms, understand what it is, why it is so important to know how algorithms work and where they are used. Our new article will help you embrace the necessary basics and pass an interview!

### Definition

The algorithm definition is very simple and straightforward, although it hides almost the entire meaning of being.

An algorithm is a set of instructions designed to perform a specific task.

Everything seems to be simple and clear. You can write an algorithm even for going to the store. If it is written well, then you will successfully return home with purchases.

Let us find out what does “written well” means. What characteristics should such an algorithm have?

### Algorithm characteristics

Most of the algorithm characteristics apply to both sorting the numbers in an array and the trip to the store mentioned above.

**The algorithm goal** is the defining characteristic of the algorithm.

The algorithm goal will show us what we can use the specified algorithm for, whether it is sorting numbers in an array, data compression, or the trip to the store mentioned earlier. You should select the algorithm that best suits the task.

**Algorithm accuracy **

It is important to understand that not all problems require the correct answer with a probability equal to 1. For some problems, you can use algorithms that estimate a probability of a particular event or an approximate value. It is much more important to get an approximate answer quickly than to spend days, weeks, or years getting an accurate value.

**Algorithm speed **

It shows not only the average speed of the algorithm but also the possible change in the algorithm speed according to the amount of input data.

**Methods of algorithm development **

There are various methods for developing algorithms: decomposition method, successive approximation method, random search method, etc. Knowledge of methods for developing algorithms can also help as a starting point when writing your own algorithm.

**Algorithm complexity **

One of the most important characteristics of algorithms is complexity. The main indicator of the complexity of an algorithm is the time it takes to solve the problem and the amount of memory required. The complexity index is a very sensitive issue and needs to be well understood. Therefore, the next article will be fully devoted to assessing the complexity of algorithms. All the secrets of big O notation will be revealed in this article.