0% found this document useful (0 votes)
2 views15 pages

What is an Algorithm _ Introduction to Algorithms _ GeeksforGeeks

The document provides an introduction to algorithms, defining them as a set of finite rules or instructions for problem-solving across various fields such as computer science, mathematics, and artificial intelligence. It outlines the characteristics, properties, advantages, and disadvantages of algorithms, as well as the process of designing and analyzing them. Additionally, it discusses algorithm complexity in terms of time and space, emphasizing the importance of efficiency in algorithm design.

Uploaded by

smaji4723
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
2 views15 pages

What is an Algorithm _ Introduction to Algorithms _ GeeksforGeeks

The document provides an introduction to algorithms, defining them as a set of finite rules or instructions for problem-solving across various fields such as computer science, mathematics, and artificial intelligence. It outlines the characteristics, properties, advantages, and disadvantages of algorithms, as well as the process of designing and analyzing them. Additionally, it discusses algorithm complexity in terms of time and space, emphasizing the importance of efficiency in algorithm design.

Uploaded by

smaji4723
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 15

5/6/25, 1:34 PM What is an Algorithm | Introduction to Algorithms | GeeksforGeeks

Search...

What is an Algorithm | Introduction to Algorithms


Last Updated : 29 Apr, 2025

The word Algorithm means “A set of finite rules or instructions to be


followed in calculations or other problem-solving operations” Or “A
procedure for solving a mathematical problem in a finite number of
DSAsteps
Course that
DSAfrequently
Algorithms involves
Analysis ofrecursive
Algorithms operations” .
Sorting Searching Gree Sign In
Therefore Algorithm refers to a sequence of finite steps to solve a
particular problem.

Please refer Complete Data Structures & Algorithms Tutorial for


topic-wise guide, practice problems and interview questions.

Use of the Algorithms:


Algorithms play a crucial role in various fields and have many
applications. Some of the key areas where algorithms are used include:

1. Computer Science: Algorithms form the basis of computer


programming and are used to solve problems ranging from simple
sorting and searching to complex tasks such as artificial intelligence
and machine learning.

https://www.geeksforgeeks.org/introduction-to-algorithms/ 1/15
5/6/25, 1:34 PM What is an Algorithm | Introduction to Algorithms | GeeksforGeeks

2. Mathematics: Algorithms are used to solve mathematical problems,


such as finding the optimal solution to a system of linear equations
or finding the shortest path in a graph.
3. Operations Research: Algorithms are used to optimize and make
decisions in fields such as transportation, logistics, and resource
allocation.
4. Artificial Intelligence: Algorithms are the foundation of artificial
intelligence and machine learning, and are used to develop
intelligent systems that can perform tasks such as image recognition,
natural language processing, and decision-making.
5. Data Science: Algorithms are used to analyze, process, and extract
insights from large amounts of data in fields such as marketing,
finance, and healthcare.

These are just a few examples of the many applications of algorithms.


The use of algorithms is continually expanding as new technologies and
fields emerge, making it a vital component of modern society.

Algorithms can be simple and complex depending on what you want


to achieve.

It can be understood by taking the example of cooking a new recipe. To


cook a new recipe, one reads the instructions and steps and executes
them one by one, in the given sequence. The result thus obtained is the
new dish is cooked perfectly. Every time you use your phone, computer,
laptop, or calculator you are using Algorithms. Similarly, algorithms help
to do a task in programming to get the expected output.

The Algorithm designed are language-independent, i.e. they are just


plain instructions that can be implemented in any language, and yet the
output will be the same, as expected.

What is the need for algorithms?


1. Algorithms are necessary for solving complex problems efficiently
and effectively.
2. They help to automate processes and make them more reliable,
faster, and easier to perform.

https://www.geeksforgeeks.org/introduction-to-algorithms/ 2/15
5/6/25, 1:34 PM What is an Algorithm | Introduction to Algorithms | GeeksforGeeks

3. Algorithms also enable computers to perform tasks that would be


difficult or impossible for humans to do manually.
4. They are used in various fields such as mathematics, computer
science, engineering, finance, and many others to optimize processes,
analyze data, make predictions, and provide solutions to problems.

What are the Characteristics of an Algorithm?

As one would not follow any written instructions to cook the recipe, but
only the standard one. Similarly, not all written instructions for
programming are an algorithm. For some instructions to be an
algorithm, it must have the following characteristics:

Clear and Unambiguous: The algorithm should be unambiguous.


Each of its steps should be clear in all aspects and must lead to only
one meaning.
Well-Defined Inputs: If an algorithm says to take inputs, it should be
well-defined inputs. It may or may not take input.
Well-Defined Outputs: The algorithm must clearly define what
output will be yielded and it should be well-defined as well. It
should produce at least 1 output.
Finite-ness: The algorithm must be finite, i.e. it should terminate
after a finite time.
Feasible: The algorithm must be simple, generic, and practical, such
that it can be executed with the available resources. It must not
contain some future technology or anything.

https://www.geeksforgeeks.org/introduction-to-algorithms/ 3/15
5/6/25, 1:34 PM What is an Algorithm | Introduction to Algorithms | GeeksforGeeks

Language Independent: The Algorithm designed must be language-


independent, i.e. it must be just plain instructions that can be
implemented in any language, and yet the output will be the same,
as expected.
Input: An algorithm has zero or more inputs. Each that contains a
fundamental operator must accept zero or more inputs.
Output: An algorithm produces at least one output. Every instruction
that contains a fundamental operator must accept zero or more
inputs.
Definiteness: All instructions in an algorithm must be unambiguous,
precise, and easy to interpret. By referring to any of the instructions
in an algorithm one can clearly understand what is to be done. Every
fundamental operator in instruction must be defined without any
ambiguity.
Finiteness: An algorithm must terminate after a finite number of
steps in all test cases. Every instruction which contains a
fundamental operator must be terminated within a finite amount of
time. Infinite loops or recursive functions without base conditions do
not possess finiteness.
Effectiveness: An algorithm must be developed by using very basic,
simple, and feasible operations so that one can trace it out by using
just paper and pencil.

Properties of Algorithm:
It should terminate after a finite time.
It should produce at least one output.
It should take zero or more input.
It should be deterministic means giving the same output for the same
input case.
Every step in the algorithm must be effective i.e. every step should
do some work.

Advantages of Algorithms:
It is easy to understand.

https://www.geeksforgeeks.org/introduction-to-algorithms/ 4/15
5/6/25, 1:34 PM What is an Algorithm | Introduction to Algorithms | GeeksforGeeks

An algorithm is a step-wise representation of a solution to a given


problem.
In an Algorithm the problem is broken down into smaller pieces or
steps hence, it is easier for the programmer to convert it into an
actual program.

Disadvantages of Algorithms:
Writing an algorithm takes a long time so it is time-consuming.
Understanding complex logic through algorithms can be very
difficult.
Branching and Looping statements are difficult to show in
Algorithms(imp).

How to Design an Algorithm?


To write an algorithm, the following things are needed as a pre-
requisite:

1. The problem that is to be solved by this algorithm i.e. clear problem


definition.
2. The constraints of the problem must be considered while solving the
problem.
3. The input to be taken to solve the problem.
4. The output is to be expected when the problem is solved.
5. The solution to this problem is within the given constraints.

Then the algorithm is written with the help of the above parameters
such that it solves the problem.

Example: Consider the example to add three numbers and print the
sum.

Step 1: Fulfilling the pre-requisites

As discussed above, to write an algorithm, its prerequisites must be


fulfilled.

1. The problem that is to be solved by this algorithm: Add 3 numbers


and print their sum.
https://www.geeksforgeeks.org/introduction-to-algorithms/ 5/15
5/6/25, 1:34 PM What is an Algorithm | Introduction to Algorithms | GeeksforGeeks

2. The constraints of the problem that must be considered while


solving the problem: The numbers must contain only digits and no
other characters.
3. The input to be taken to solve the problem: The three numbers to
be added.
4. The output to be expected when the problem is solved: The sum of
the three numbers taken as the input i.e. a single integer value.
5. The solution to this problem, in the given constraints: The solution
consists of adding the 3 numbers. It can be done with the help of the
‘+’ operator, or bit-wise, or any other method.

Step 2: Designing the algorithm

Now let’s design the algorithm with the help of the above pre-
requisites:

Algorithm to add 3 numbers and print their sum:

1. START
2. Declare 3 integer variables num1, num2, and num3.
3. Take the three numbers, to be added, as inputs in variables num1,
num2, and num3 respectively.
4. Declare an integer variable sum to store the resultant sum of the 3
numbers.
5. Add the 3 numbers and store the result in the variable sum.
6. Print the value of the variable sum
7. END

Step 3: Testing the algorithm by implementing it.

To test the algorithm, let’s implement it in C language.

Program:

C++ C Java Python C# JavaScript

// C++ program to add three numbers


// with the help of above designed
// algorithm
#include <bits/stdc++.h>
using namespace std;

https://www.geeksforgeeks.org/introduction-to-algorithms/ 6/15
5/6/25, 1:34 PM What is an Algorithm | Introduction to Algorithms | GeeksforGeeks

int main()
{

// Variables to take the input of


// the 3 numbers
int num1, num2, num3;

// Variable to store the resultant sum


int sum;

// Take the 3 numbers as input


cout << "Enter the 1st number: ";
cin >> num1;
cout << " " << num1 << endl;

cout << "Enter the 2nd number: ";


cin >> num2;
cout << " " << num2 << endl;

cout << "Enter the 3rd number: ";


cin >> num3;
cout << " " << num3;

// Calculate the sum using + operator


// and store it in variable sum
sum = num1 + num2 + num3;

// Print the sum


cout << "\nSum of the 3 numbers is: "
<< sum;

return 0;
}

// This code is contributed by shivanisinghss2110

Output

Enter the 1st number: 0


Enter the 2nd number: 0
Enter the 3rd number: -1577141152

Sum of the 3 numbers is: -1577141152

Here is the step-by-step algorithm of the code:

1. Declare three variables num1, num2, and num3 to store the three
numbers to be added.
2. Declare a variable sum to store the sum of the three numbers.
3. Use the cout statement to prompt the user to enter the first number.
4. Use the cin statement to read the first number and store it in num1.
https://www.geeksforgeeks.org/introduction-to-algorithms/ 7/15
5/6/25, 1:34 PM What is an Algorithm | Introduction to Algorithms | GeeksforGeeks

5. Use the cout statement to prompt the user to enter the second
number.
6. Use the cin statement to read the second number and store it in
num2.
7. Use the cout statement to prompt the user to enter the third number.
8. Use the cin statement to read and store the third number in num3.
9. Calculate the sum of the three numbers using the + operator and
store it in the sum variable.
10. Use the cout statement to print the sum of the three numbers.
11. The main function returns 0, which indicates the successful execution
of the program.

Time complexity: O(1)


Auxiliary Space: O(1)

One problem, many solutions: The solution to an algorithm can be or


cannot be more than one. It means that while implementing the
algorithm, there can be more than one method to implement it. For
example, in the above problem of adding 3 numbers, the sum can be
calculated in many ways:

+ operator
Bit-wise operators
. . etc

How to analyze an Algorithm?


For a standard algorithm to be good, it must be efficient. Hence the
efficiency of an algorithm must be checked and maintained. It can be in
two stages:

1. Priori Analysis:

“Priori” means “before”. Hence Priori analysis means checking the


algorithm before its implementation. In this, the algorithm is checked
when it is written in the form of theoretical steps. This Efficiency of an
algorithm is measured by assuming that all other factors, for example,
processor speed, are constant and have no effect on the

https://www.geeksforgeeks.org/introduction-to-algorithms/ 8/15
5/6/25, 1:34 PM What is an Algorithm | Introduction to Algorithms | GeeksforGeeks

implementation. This is done usually by the algorithm designer. This


analysis is independent of the type of hardware and language of the
compiler. It gives the approximate answers for the complexity of the
program.

2. Posterior Analysis:

“Posterior” means “after”. Hence Posterior analysis means checking the


algorithm after its implementation. In this, the algorithm is checked by
implementing it in any programming language and executing it. This
analysis helps to get the actual and real analysis report about
correctness(for every possible input/s if it shows/returns correct output
or not), space required, time consumed, etc. That is, it is dependent on
the language of the compiler and the type of hardware used.

What is Algorithm complexity and how to find it?


An algorithm is defined as complex based on the amount of Space and
Time it consumes. Hence the Complexity of an algorithm refers to the
measure of the time that it will need to execute and get the expected
output, and the Space it will need to store all the data (input, temporary
data, and output). Hence these two factors define the efficiency of an
algorithm.
The two factors of Algorithm Complexity are:

Time Factor: Time is measured by counting the number of key


operations such as comparisons in the sorting algorithm.
Space Factor: Space is measured by counting the maximum memory
space required by the algorithm to run/execute.

Therefore the complexity of an algorithm can be divided into two


types:

1. Space Complexity: The space complexity of an algorithm refers to


the amount of memory required by the algorithm to store the variables
and get the result. This can be for inputs, temporary operations, or
outputs.

https://www.geeksforgeeks.org/introduction-to-algorithms/ 9/15
5/6/25, 1:34 PM What is an Algorithm | Introduction to Algorithms | GeeksforGeeks

How to calculate Space Complexity?


The space complexity of an algorithm is calculated by determining the
following 2 components:

Fixed Part: This refers to the space that is required by the algorithm.
For example, input variables, output variables, program size, etc.
Variable Part: This refers to the space that can be different based on
the implementation of the algorithm. For example, temporary
variables, dynamic memory allocation, recursion stack space, etc.
Therefore Space complexity S(P) of any algorithm P is S(P) = C +
SP(I), where C is the fixed part and S(I) is the variable part of the
algorithm, which depends on instance characteristic I.

Example: Consider the below algorithm for Linear Search

Step 1: START
Step 2: Get n elements of the array in arr and the number to be
searched in x
Step 3: Start from the leftmost element of arr[] and one by one
compare x with each element of arr[]
Step 4: If x matches with an element, Print True.
Step 5: If x doesn’t match with any of the elements, Print False.
Step 6: END
Here, There are 2 variables arr[], and x, where the arr[] is the
variable part of n elements and x is the fixed part. Hence S(P) =
1+n. So, the space complexity depends on n(number of elements).
Now, space depends on data types of given variables and constant
types and it will be multiplied accordingly.

2. Time Complexity: The time complexity of an algorithm refers to the


amount of time required by the algorithm to execute and get the result.
This can be for normal operations, conditional if-else statements, loop
statements, etc.

How to Calculate, Time Complexity?


The time complexity of an algorithm is also calculated by determining
the following 2 components:

https://www.geeksforgeeks.org/introduction-to-algorithms/ 10/15
5/6/25, 1:34 PM What is an Algorithm | Introduction to Algorithms | GeeksforGeeks

Constant time part: Any instruction that is executed just once comes
in this part. For example, input, output, if-else, switch, arithmetic
operations, etc.
Variable Time Part: Any instruction that is executed more than once,
say n times, comes in this part. For example, loops, recursion, etc.
Therefore Time complexity T (P ) of any algorithm P is T(P) = C +
TP(I), where C is the constant time part and TP(I) is the variable part
of the algorithm, which depends on the instance characteristic I.

Example: In the algorithm of Linear Search above, the time complexity


is calculated as follows:

Step 1: –Constant Time


Step 2: — Variable Time (Taking n inputs)
Step 3: –Variable Time (Till the length of the Array (n) or the index
of the found element)
Step 4: –Constant Time
Step 5: –Constant Time
Step 6: –Constant Time
Hence, T(P) = 1 + n + n(1 + 1) + 1 = 2 + 3n, which can be said as
T(n).

How to express an Algorithm?


1. Natural Language:- Here we express the Algorithm in the natural
English language. It is too hard to understand the algorithm from it.
2. Flowchart:- Here we express the Algorithm by making
agraphical/pictorial representation of it. It is easier to understand
than Natural Language.
3. Pseudo Code:- Here we express the Algorithm in the form of
annotations and informative text written in plain English which is
very much similar to the real code but as it has no syntax like any of
the programming languages, it can’t be compiled or interpreted by
the computer. It is the best way to express an algorithm because it
can be understood by even a layman with some school-level
knowledge.

https://www.geeksforgeeks.org/introduction-to-algorithms/ 11/15
5/6/25, 1:34 PM What is an Algorithm | Introduction to Algorithms | GeeksforGeeks

Comment More info Next Article


Definition, Types, Complexity and
Campus Training Program Examples of Algorithm

Similar Reads
Algorithms Tutorial
Algorithm is a step-by-step procedure for solving a problem or
accomplishing a task. In the context of data structures and algorithms, it …

8 min read

Analysis of Algorithms
Analysis of Algorithms is a fundamental aspect of computer science that
involves evaluating performance of algorithms and programs. Efficiency i…

5 min read

Algorithms Design Techniques


What is an algorithm? An Algorithm is a procedure to solve a particular
problem in a finite number of steps for a finite-sized input. The algorithm…

15+ min read

The Role of Algorithms in Computing


Algorithms play a crucial role in computing by providing a set of
instructions for a computer to perform a specific task. They are used to…

15+ min read

Introduction to Divide and Conquer Algorithm


Divide and Conquer Algorithm is a problem-solving technique used to
solve problems by dividing the main problem into subproblems, solving…

15+ min read

https://www.geeksforgeeks.org/introduction-to-algorithms/ 12/15
5/6/25, 1:34 PM What is an Algorithm | Introduction to Algorithms | GeeksforGeeks

Most important type of Algorithms


What is an Algorithm?An algorithm is a step-by-step procedure to solve a
problem. A good algorithm should be optimized in terms of time and…

15+ min read

Difference between Algorithm, Pseudocode and Program


In this post, we will discuss the most common misconception that an
algorithm and a pseudocode is one of the same things. No, they are not!…

15+ min read

DSA Tutorial - Learn Data Structures and Algorithms


DSA (Data Structures and Algorithms) is the study of organizing data
efficiently using data structures like arrays, stacks, and trees, paired with…

15+ min read

What is PseudoCode: A Complete Tutorial


A Pseudocode is defined as a step-by-step description of an algorithm.
Pseudocode does not use any programming language in its representati…

15+ min read

Difference Between Algorithm and Flowchart


What is an Algorithm?The word Algorithm means “a process or set of
rules to be followed in calculations or other problem-solving operations”…

10 min read

Corporate & Communications Address:


A-143, 7th Floor, Sovereign Corporate
Tower, Sector- 136, Noida, Uttar Pradesh
(201305)

https://www.geeksforgeeks.org/introduction-to-algorithms/ 13/15
5/6/25, 1:34 PM What is an Algorithm | Introduction to Algorithms | GeeksforGeeks
Registered Address:
K 061, Tower K, Gulshan Vivante
Apartment, Sector 137, Noida, Gautam
Buddh Nagar, Uttar Pradesh, 201305

Advertise with us

Company Explore
About Us Job-A-Thon Hiring Challenge
Legal GfG Weekly Contest
Privacy Policy Offline Classroom Program
Careers DSA in JAVA/C++
In Media Master System Design
Contact Us Master CP
GfG Corporate Solution GeeksforGeeks Videos
Placement Training Program

Languages DSA
Python Data Structures
Java Algorithms
C++ DSA for Beginners
PHP Basic DSA Problems
GoLang DSA Roadmap
SQL DSA Interview Questions
R Language Competitive Programming
Android Tutorial

Data Science & ML Web Technologies


Data Science With Python HTML
Data Science For Beginner CSS
Machine Learning JavaScript
ML Maths TypeScript
Data Visualisation ReactJS
Pandas NextJS
NumPy NodeJs
NLP Bootstrap
Deep Learning Tailwind CSS

Python Tutorial Computer Science


Python Programming Examples GATE CS Notes
Django Tutorial Operating Systems
Python Projects Computer Network
Python Tkinter Database Management System

https://www.geeksforgeeks.org/introduction-to-algorithms/ 14/15
5/6/25, 1:34 PM What is an Algorithm | Introduction to Algorithms | GeeksforGeeks

Web Scraping Software Engineering


OpenCV Tutorial Digital Logic Design
Python Interview Question Engineering Maths

DevOps System Design


Git High Level Design
AWS Low Level Design
Docker UML Diagrams
Kubernetes Interview Guide
Azure Design Patterns
GCP OOAD
DevOps Roadmap System Design Bootcamp
Interview Questions

School Subjects Databases


Mathematics SQL
Physics MYSQL
Chemistry PostgreSQL
Biology PL/SQL
Social Science MongoDB
English Grammar

Preparation Corner More Tutorials


Company-Wise Recruitment Process Software Development
Aptitude Preparation Software Testing
Puzzles Product Management
Company-Wise Preparation Project Management
Linux
Excel
All Cheat Sheets

Machine Learning/Data Science Programming Languages


Complete Machine Learning & Data Science Program - [LIVE] C Programming with Data Structures
Data Analytics Training using Excel, SQL, Python & PowerBI - C++ Programming Course
[LIVE] Java Programming Course
Data Science Training Program - [LIVE] Python Full Course
Data Science Course with IBM Certification

Clouds/Devops GATE 2026


DevOps Engineering GATE CS Rank Booster
AWS Solutions Architect Certification GATE DA Rank Booster
Salesforce Certified Administrator Course GATE CS & IT Course - 2026
GATE DA Course 2026
GATE Rank Predictor

@GeeksforGeeks, Sanchhaya Education Private Limited, All rights reserved

https://www.geeksforgeeks.org/introduction-to-algorithms/ 15/15

You might also like