# What Is an Algorithm? (With Definition, Types, and FAQs)

By Indeed Editorial Team

Updated June 16, 2022

Published December 7, 2021

The Indeed Editorial Team comprises a diverse and talented team of writers, researchers and subject matter experts equipped with Indeed's data and insights to deliver useful tips to help guide your career journey.

Problem-solving skills are qualities that employers value in candidates. To resolve problems and complete tasks efficiently, it's important to design an algorithm. Understanding the definition, types, and importance of algorithms can improve your ability to solve problems and complete projects at work. In this article, we answer the question, "What is an algorithm?", explore the types of this method, outline how to develop algorithms, and share answers to frequently asked questions about algorithms.

## What is an algorithm?

To answer the question, "What is an algorithm?", you might consider its purpose and elements. An algorithm is a set of instructions for solving a problem or completing a task. While they're popular in technical fields, algorithms can apply to a wide range of disciplines. For example, a recipe is an algorithm because it comprises specific instructions for preparing a meal. Doing your laundry can be another example of an algorithm. Here are essential characteristics of an algorithm:

• Correctness: An effective algorithm outlines the required task or solves a problem accurately.

• Efficiency: An efficient algorithm requires little time to perform the required instructions.

• Comprehensibility: An algorithm requires and contains understandable instructions.

## Types of algorithms

The following is a list of the most common algorithm types:

### Recursive algorithm

A recursive algorithm solves a simple problem and recurs with a simpler subproblem until you reach an effective solution. It progresses through all instructions and changes the input values.

Example: Suppose you want to count the number of elements in a list. The first step of a recursive algorithm might be to determine whether the list is empty and return zero, which means there are no elements in the list. Otherwise, you may skip the first element and count what remains in the list. This can simplify the problem because it involves recording fewer elements. You can end the recursive algorithm by adding one to the result of the previous step.

### Backtracking algorithm

A backtracking algorithm is a technique of finding a solution in small steps and solving subproblems. If the algorithm can't find a solution at the first trial, it can undo the previous step and restart the problem-solving process.

Example: Suppose you're playing a game of chess and trying to move a pawn. If there are other pieces on the board, you may use a backtracking algorithm to determine your next step. Whenever you move the pawn and discover it doesn't follow the rules, you retract your step and consider other options. Implementing the backtracking algorithm requires you to continue with other options until you find a move that follows the rules.

### Dynamic programming algorithm

A dynamic programming algorithm involves creating simple subproblems and handling them to solve an initial problem. It involves tracking the results of previous actions and using them to find new results.

Example: Suppose you have the sequence of numbers 1,1,2,3,5,8. You can obtain the next number by adding the current number and the previous number. By implementing a dynamic programming algorithm, you can find the fifth value of the sequence, 5, by finding the fourth number, 3, and adding it to the third value, 2.

### Brute force algorithm

A brute force algorithm involves generating all probable combinations and checking if any option is a solution. Similar to the backtracking algorithm, you typically perform assessments at the end of the process instead of after each step.

Example: Suppose you want to make a financial investment. To determine the most profitable option, you can implement a brute force algorithm by listing all potential investment opportunities and calculating the expected return on investment (ROI). Because implementing a brute force algorithm may require time, you may specify financial conditions for generating investment ideas.

Related: What Is ROI? Understanding the Meaning and Calculation

### Randomized algorithm

A randomized algorithm involves randomness as part of its procedure. It requires using a random number at least once to solve a problem or make decisions.

Example: Suppose you want to find large prime numbers. In math, a prime is a number greater than one that you can only multiply by 1 to get the same number, such as 47 and 23. You may randomly choose numbers that meet the description. Then, the algorithm may notice the characteristics of the primes and select or generate larger numbers with the same features, such as 9949.

### Greedy algorithm

A greedy algorithm can help you find the best solution to a problem. Technical professionals, such as mathematicians and researchers, use it to solve optimization problems. Implementing this algorithm involves choosing the best option at each step and combining them at the end.

Example: Suppose you want to exchange a \$100 bill for another denomination. At the bank, the teller offers you five bills of \$10 and 10 bills of \$5. But by applying the greedy algorithm, you may find a simpler solution, which is asking for two bills of \$50.

### Branch and bound algorithm

Another strategy for finding the optimal solution to a problem is the branch and bound algorithm. It involves creating upper and lower bounds and forming subtasks for the initial problem. At each step, the algorithm evaluates the conditions of the bound to determine whether to create more subtasks or make conclusions.

Example: Harrison and Yvonne want to visit 10 cities in Ontario, but also they want to minimize the distance they're travelling. By using the branch and bound algorithm, they may divide this challenge into two. While finding the shortest route, visiting Toronto first can be a subtask, and visiting other locations first may be an alternative. If visiting Toronto first offers a shorter route, they can ignore the option of starting the journey from other locations. They can continue with the algorithm by dividing the option of visiting Toronto first into whether to visit Ottawa second.

## How to design an algorithm

You can follow these steps to develop algorithms at work:

### 1. Obtain the problem description

Start by defining the problem or challenge. Completing this step typically requires you to collaborate with other professionals and apply your critical thinking skills. Accurately defining the problem or task can offer direction on the suitable algorithm to use.

Related: What Is a Problem Statement? Definition and Example

### 2. Analyze the problem

Next, you can determine the problem's or challenge's start point and its end point. By doing this, you can identify the characteristics of an effective solution or a practical plan for completing a task. You can analyze the problem by asking the following questions:

• What data is available?

• Where is the data?

• What relationships exist among the data values?

• How can you identify a practical solution?

Read more: Analytical Skills Defined and Explained

### 3. Develop a high-level algorithm

This step involves identifying the major parts of a solution without including the details. By using a high-level algorithm, you can simplify discovering an effective solution. For example, suppose you want to send a birthday card to a colleague. By analyzing the problem, you may realize that you prefer purchasing a card instead of creating one. A high-level algorithm for this problem may comprise the following actions:

• Go to a store that sells birthday cards.

• Select a card.

• Purchase a card.

• Mail the card.

### 4. Improve the algorithm

Typically, you include more details related to the specific challenge in the algorithm. In the example of purchasing a birthday card, you may include details on who may go to the store and what type of card they can purchase. You may also improve the algorithm by considering your knowledge about the stores in the area. If your goal is to develop algorithms, you can implement using computer systems, it can be helpful to consider the computer's capability.

Related: Computer Literacy in the Workplace: What You Need to Know

### 5. Review the algorithm

• Does this algorithm solve a specific or a general problem?

• Can you simplify the algorithm?

• Is the solution similar to that of another problem?