When you are learning computer programming, you can’t do without algorithms. That’s the first thing that you will encounter. Now, what is an algorithm? It’s a fairly easy topic — an algorithm is a list of steps that we undertake to complete a task. Yes, it’s as easy as it sounds. And as humans, we tend to perform certain steps to complete simple tasks without even thinking much about it. Now, let’s see how it works in our daily activities. You require a guide that will help you understand the concepts efficiently.

Let’s say you want to buy a book from Flipkart. How will you go about it? You already have the book title in your mind. Now, you will take the following steps:

**Step 1: **Open Flipkart (app or website)

**Step 2: **Type the book title on the search bar and click search.

**Step 3:** Check if the book is in stock. If so, add it to cart.

**Step 4: **Proceed to the checkout process.

**Step 5: **Confirm.

**Step 6: **Wait for the delivery to happen.

It comes naturally to us. But for the computer, these steps are to be ‘inputted’. And it can get really complex. That’s the reason why we need algorithm analysis.

**What is ****algorithm analysis****?**

It is analyzing the algorithm for performance and resource usage. Why is performance so important? The performance tells you if you have done a program correctly or not. Faster performance does not always mean that you have done it correctly, but the slower performance and correct answer can mean that you have complicated the code. As you can see, there is a lot of complexity that comes into this theory. When you are writing pseudocode, that is, the algorithm form for the computer, you have to take into consideration, the following things:

- Input: Is the input to complicated or wrong?
- Input Size: Is the input becomes too long and would be difficult to process?

Much of the processing will depend on the nature of the input and the input size.

However, there are ways in which you can conduct Algorithm Analysis.

When we are trying to analyze an algorithm, what we try to do is analyze how many times the principal activity of the algorithm is being performed. Then we count the number of comparisons. Some of the ways in which algorithm analyses could be done are:

**1. Worst Case — This is done usually**

During the worst case analysis, first of all, we calculate the upper bound of a running time. In this case, the maximum number of operations could be conducted over all the different input sizes placed under ‘n’.

**2. Average Case**

This is used moderately. This is useful but difficult method to use for all measurements, hence its use is limited. In this case, we consider all the inputs and then, consider the computing time taken for all the inputs. Then the sum of values is divided by the sum of the total inputs. The average will help us predict almost accurately the distribution throughout the data set.

**3. Best Case**

This is rarely used. In this case, the lower bound algorithm is used. Here, we must consider the minimum number of operations that can be executed for the input size ’n’. This might help us to get the best behaviour of a specific algorithm.

Now, all you need to do is analyze the complex algorithm and find any errors, if any. Make an effort to amp up the performance of the algorithms in the best way you can. If you find yourself stuck in your journey, feel free to reach out to us!

## Leave a Reply