SlideShare a Scribd company logo
4
Most read
10
Most read
12
Most read
Introduction to Algorithm
Algorithms Basics
• Algorithm is a step by step procedure, which
defines a set of instructions to be executed in
certain order to get the desired output.
• Algorithms are generally created independent
of underlying languages,
• i.e. an algorithm can be implemented in more
than one programming language.
• From data structure point of view, following are
some important categories of algorithms −
Search − Algorithm to search an item in a data
structure.
Sort − Algorithm to sort items in certain order
Insert − Algorithm to insert item in a data
structure
Update − Algorithm to update an existing
item in a data structure
Delete − Algorithm to delete an existing item
from a data structure
Characteristics of an Algorithm
Not all procedures can be called an algorithm. An algorithm should
have the below mentioned characteristics
• Unambiguous − Algorithm should be clear and unambiguous. Each
of its steps (or phases), and their input/outputs should be clear and
must lead to only one meaning.
• Input − An algorithm should have 0ne or more well defined inputs.
• Output − An algorithm should have 1 or more well defined outputs,
and should match the desired output.
• Finiteness − Algorithms must terminate after a finite number of
steps.
• Feasibility − Should be feasible with the available resources.
• Independent − An algorithm should have step-by-step directions
which should be independent of any programming code.
How to write an algorithm?
• There are no well-defined standards for writing algorithms.
• Rather, it is problem and resource dependent.
• Algorithms are never written to support a particular
programming code.
• As we know that all programming languages share basic code
constructs like loops (do, for, while), flow-control (if-else) etc.
These common constructs can be used to write an algorithm.
• We write algorithms in step by step manner, but it is not always
the case.
• Algorithm writing is a process and is executed after the problem
domain is well-defined.
• That is, we should know the problem domain, for which we are
designing a solution.
Example
• Let's try to learn algorithm-writing by using an
example.
• Problem − Design an algorithm to add two
numbers and display result.
• step 1 − START
• step 2 − declare three integers a, b & c
• step 3 − define values of a & b
• step 4 − add values of a & b
• step 5 − store output of step 4 to c
• step 6 − print c
• step 7 − STOP
• Algorithms tell the programmers how to code
the program. Alternatively the algorithm can
be written as −
• step 1 − START ADD
• step 2 − get values of a & b
• step 3 − c ← a + b
• step 4 − display c
• step 5 − STOP
• In design and analysis of algorithms, usually the
second method is used to describe an algorithm.
• It makes it easy of the analyst to analyze the
algorithm ignoring all unwanted definitions.
• He can observe what operations are being used
and how the process is flowing.
• Writing step numbers, is optional.
• We design an algorithm to get solution of a given
problem. A problem can be solved in more than
one ways.
• Hence, many solution algorithms can be derived
for a given problem.
• Next step is to analyze those proposed solution
algorithms and implement the best suitable.
Algorithm Complexity
• Suppose X is an algorithm and n is the size of input
data, the time and space used by the Algorithm X are
the two main factors which decide the efficiency of X.
• Time Factor − The time is measured by counting the
number of key operations such as comparisons in
sorting algorithm
• Space Factor − The space is measured by counting the
maximum memory space required by the algorithm.
• The complexity of an algorithm f(n) gives the running
time and / or storage space required by the algorithm
in terms of n as the size of input data.
Space Complexity
• Space complexity of an algorithm represents the
amount of memory space required by the algorithm in
its life cycle. Space required by an algorithm is equal to
the sum of the following two components −
• A fixed part that is a space required to store certain
data and variables, that are independent of the size of
the problem. For example simple variables & constant
used, program size etc.
• A variable part is a space required by variables, whose
size depends on the size of the problem. For example
dynamic memory allocation, recursion stack space etc.
Asymptotic Analysis
• Asymptotic analysis of an algorithm, refers to
defining the mathematical boundation/framing of
its run-time performance. Using asymptotic
analysis, we can very well conclude the best case,
average case and worst case scenario of an
algorithm.
• Asymptotic analysis are input bound i.e., if there's
no input to the algorithm it is concluded to work
in a constant time. Other than the "input" all
other factors are considered constant.
• Asymptotic analysis refers to computing the
running time of any operation in mathematical
units of computation. For example, running time
of one operation is computed as f(n) and may be
for another operation it is computed as g(n2).
Which means first operation running time will
increase linearly with the increase in n and
running time of second operation will increase
exponentially when n increases. Similarly the
running time of both operations will be nearly
same if n is significantly small.
• Usually, time required by an algorithm falls
under three types −
• Best Case − Minimum time required for
program execution.
• Average Case − Average time required for
program execution.
• Worst Case − Maximum time required for
program execution.
Asymptotic Notations
• Following are commonly used asymptotic
notations used in calculating running time
complexity of an algorithm.
• Ο Notation
• Ω Notation
• θ Notation
Big Oh Notation, Ο
• The Ο(n) is the formal way to express the
upper bound of an algorithm's running time.
• It measures the worst case time complexity or
longest amount of time an algorithm can
possibly take to complete.
• For example, for a function f(n)
• Ο(f(n)) < { g(n) : there exists c > 0 and n0 such that
f(n) ≤ c.g(n) for all n > n0. }
Omega Notation, Ω
• The Ω(n) is the formal way to express the
lower bound of an algorithm's running time.
• It measures the best case time complexity or
best amount of time an algorithm can possibly
take to complete.
• For example, for a function f(n)
• Ω(f(n)) ≥ { g(n) : there exists c > 0 and n0 such that
g(n) ≤ c.f(n) for all n > n0. }
Theta Notation, θ
• The θ(n) is the formal way to express both the
lower bound and upper bound of an algorithm's
running time. It is represented as following −
• θ(f(n)) = { g(n) if and only if g(n) = Ο(f(n)) and g(n)
= Ω(f(n)) for all n > n0. }
Common Asymptotic Notations
constant − Ο(1)
logarithmic − Ο(log n)
linear − Ο(n)
n log n − Ο(n log n)
quadratic − Ο(n
2
)
cubic − Ο(n
3
)
polynomial − n
Ο(1)
exponential − 2
Ο(n)

More Related Content

PDF
Python algorithm
PDF
Algorithms Lecture 1: Introduction to Algorithms
PPTX
Analysis and Design of Algorithms
PDF
Algorithms Lecture 2: Analysis of Algorithms I
PPT
Infix prefix postfix
PPTX
Design and Analysis of Algorithms.pptx
PDF
Algorithms Lecture 6: Searching Algorithms
PPT
Primitive data types in java
Python algorithm
Algorithms Lecture 1: Introduction to Algorithms
Analysis and Design of Algorithms
Algorithms Lecture 2: Analysis of Algorithms I
Infix prefix postfix
Design and Analysis of Algorithms.pptx
Algorithms Lecture 6: Searching Algorithms
Primitive data types in java

What's hot (20)

PPTX
MACRO PROCESSOR
PPTX
Stack data structure
PPT
Introduction to prolog
PDF
Principles of Programming Languages - Lecture Notes
PDF
COMMAND LINE ARGUMENT IN C++
PPTX
Dynamic Programming
PPTX
Header files of c++ unit 3 -topic 3
PPT
Data Structures- Part5 recursion
PPTX
Introduction to Object Oriented Programming
PPT
Compiler Design Unit 1
PPT
INTRODUCTION TO LISP
PPT
Unit 1 chapter 1 Design and Analysis of Algorithms
PDF
Arrays In C
PPTX
heap Sort Algorithm
PPT
Introduction to data structures and Algorithm
PDF
Lecture: Automata
PPT
Java Streams
PPTX
Post Machine
PPT
Introduction to design and analysis of algorithm
PDF
Algebraic Structure
MACRO PROCESSOR
Stack data structure
Introduction to prolog
Principles of Programming Languages - Lecture Notes
COMMAND LINE ARGUMENT IN C++
Dynamic Programming
Header files of c++ unit 3 -topic 3
Data Structures- Part5 recursion
Introduction to Object Oriented Programming
Compiler Design Unit 1
INTRODUCTION TO LISP
Unit 1 chapter 1 Design and Analysis of Algorithms
Arrays In C
heap Sort Algorithm
Introduction to data structures and Algorithm
Lecture: Automata
Java Streams
Post Machine
Introduction to design and analysis of algorithm
Algebraic Structure
Ad

Similar to 2. Introduction to Algorithm.pptx (20)

PPTX
Unit 1, ADA.pptx
PPTX
Algorithm.pptx
PPTX
Algorithm.pptx
PPTX
FALLSEM2022-23_BCSE202L_TH_VL2022230103292_Reference_Material_I_25-07-2022_Fu...
PPTX
Algorithms & Complexity Calculation
PDF
Algorithm Analysis.pdf
PPTX
Introduction to algorithms
PDF
Introduction to Algorithms Complexity Analysis
PPTX
Data structures algorithms basics
PPTX
Algorithm in data structure bca .pptx
PPT
Lec1.ppt
PPTX
Unit ii algorithm
PDF
DSA
PPT
Chapter1.1 Introduction.ppt
PPT
Chapter1.1 Introduction to design and analysis of algorithm.ppt
PPTX
Algorithm for the DAA agscsnak javausmagagah
PPT
algorithm_lec_1eregdsgdfgdgdfgdfgdfg.ppt
PPTX
Design and analysis of algorithms unit1.pptx
PPTX
Modile-1-PPT-1-BCAC0207-AlgorithmDesign.pptx
PPTX
Algorithm analysis and design
Unit 1, ADA.pptx
Algorithm.pptx
Algorithm.pptx
FALLSEM2022-23_BCSE202L_TH_VL2022230103292_Reference_Material_I_25-07-2022_Fu...
Algorithms & Complexity Calculation
Algorithm Analysis.pdf
Introduction to algorithms
Introduction to Algorithms Complexity Analysis
Data structures algorithms basics
Algorithm in data structure bca .pptx
Lec1.ppt
Unit ii algorithm
DSA
Chapter1.1 Introduction.ppt
Chapter1.1 Introduction to design and analysis of algorithm.ppt
Algorithm for the DAA agscsnak javausmagagah
algorithm_lec_1eregdsgdfgdgdfgdfgdfg.ppt
Design and analysis of algorithms unit1.pptx
Modile-1-PPT-1-BCAC0207-AlgorithmDesign.pptx
Algorithm analysis and design
Ad

Recently uploaded (20)

PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PDF
Spectral efficient network and resource selection model in 5G networks
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
Empathic Computing: Creating Shared Understanding
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
KodekX | Application Modernization Development
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
Approach and Philosophy of On baking technology
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PPTX
Big Data Technologies - Introduction.pptx
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PPT
Teaching material agriculture food technology
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PPTX
MYSQL Presentation for SQL database connectivity
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PPTX
Spectroscopy.pptx food analysis technology
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
Spectral efficient network and resource selection model in 5G networks
Understanding_Digital_Forensics_Presentation.pptx
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
Empathic Computing: Creating Shared Understanding
Building Integrated photovoltaic BIPV_UPV.pdf
KodekX | Application Modernization Development
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Approach and Philosophy of On baking technology
Chapter 3 Spatial Domain Image Processing.pdf
The Rise and Fall of 3GPP – Time for a Sabbatical?
Big Data Technologies - Introduction.pptx
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
Teaching material agriculture food technology
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Digital-Transformation-Roadmap-for-Companies.pptx
MYSQL Presentation for SQL database connectivity
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Spectroscopy.pptx food analysis technology

2. Introduction to Algorithm.pptx

  • 2. Algorithms Basics • Algorithm is a step by step procedure, which defines a set of instructions to be executed in certain order to get the desired output. • Algorithms are generally created independent of underlying languages, • i.e. an algorithm can be implemented in more than one programming language.
  • 3. • From data structure point of view, following are some important categories of algorithms − Search − Algorithm to search an item in a data structure. Sort − Algorithm to sort items in certain order Insert − Algorithm to insert item in a data structure Update − Algorithm to update an existing item in a data structure Delete − Algorithm to delete an existing item from a data structure
  • 4. Characteristics of an Algorithm Not all procedures can be called an algorithm. An algorithm should have the below mentioned characteristics • Unambiguous − Algorithm should be clear and unambiguous. Each of its steps (or phases), and their input/outputs should be clear and must lead to only one meaning. • Input − An algorithm should have 0ne or more well defined inputs. • Output − An algorithm should have 1 or more well defined outputs, and should match the desired output. • Finiteness − Algorithms must terminate after a finite number of steps. • Feasibility − Should be feasible with the available resources. • Independent − An algorithm should have step-by-step directions which should be independent of any programming code.
  • 5. How to write an algorithm? • There are no well-defined standards for writing algorithms. • Rather, it is problem and resource dependent. • Algorithms are never written to support a particular programming code. • As we know that all programming languages share basic code constructs like loops (do, for, while), flow-control (if-else) etc. These common constructs can be used to write an algorithm. • We write algorithms in step by step manner, but it is not always the case. • Algorithm writing is a process and is executed after the problem domain is well-defined. • That is, we should know the problem domain, for which we are designing a solution.
  • 6. Example • Let's try to learn algorithm-writing by using an example. • Problem − Design an algorithm to add two numbers and display result. • step 1 − START • step 2 − declare three integers a, b & c • step 3 − define values of a & b • step 4 − add values of a & b • step 5 − store output of step 4 to c • step 6 − print c • step 7 − STOP
  • 7. • Algorithms tell the programmers how to code the program. Alternatively the algorithm can be written as − • step 1 − START ADD • step 2 − get values of a & b • step 3 − c ← a + b • step 4 − display c • step 5 − STOP
  • 8. • In design and analysis of algorithms, usually the second method is used to describe an algorithm. • It makes it easy of the analyst to analyze the algorithm ignoring all unwanted definitions. • He can observe what operations are being used and how the process is flowing. • Writing step numbers, is optional. • We design an algorithm to get solution of a given problem. A problem can be solved in more than one ways.
  • 9. • Hence, many solution algorithms can be derived for a given problem. • Next step is to analyze those proposed solution algorithms and implement the best suitable.
  • 10. Algorithm Complexity • Suppose X is an algorithm and n is the size of input data, the time and space used by the Algorithm X are the two main factors which decide the efficiency of X. • Time Factor − The time is measured by counting the number of key operations such as comparisons in sorting algorithm • Space Factor − The space is measured by counting the maximum memory space required by the algorithm. • The complexity of an algorithm f(n) gives the running time and / or storage space required by the algorithm in terms of n as the size of input data.
  • 11. Space Complexity • Space complexity of an algorithm represents the amount of memory space required by the algorithm in its life cycle. Space required by an algorithm is equal to the sum of the following two components − • A fixed part that is a space required to store certain data and variables, that are independent of the size of the problem. For example simple variables & constant used, program size etc. • A variable part is a space required by variables, whose size depends on the size of the problem. For example dynamic memory allocation, recursion stack space etc.
  • 12. Asymptotic Analysis • Asymptotic analysis of an algorithm, refers to defining the mathematical boundation/framing of its run-time performance. Using asymptotic analysis, we can very well conclude the best case, average case and worst case scenario of an algorithm. • Asymptotic analysis are input bound i.e., if there's no input to the algorithm it is concluded to work in a constant time. Other than the "input" all other factors are considered constant.
  • 13. • Asymptotic analysis refers to computing the running time of any operation in mathematical units of computation. For example, running time of one operation is computed as f(n) and may be for another operation it is computed as g(n2). Which means first operation running time will increase linearly with the increase in n and running time of second operation will increase exponentially when n increases. Similarly the running time of both operations will be nearly same if n is significantly small.
  • 14. • Usually, time required by an algorithm falls under three types − • Best Case − Minimum time required for program execution. • Average Case − Average time required for program execution. • Worst Case − Maximum time required for program execution.
  • 15. Asymptotic Notations • Following are commonly used asymptotic notations used in calculating running time complexity of an algorithm. • Ο Notation • Ω Notation • θ Notation
  • 16. Big Oh Notation, Ο • The Ο(n) is the formal way to express the upper bound of an algorithm's running time. • It measures the worst case time complexity or longest amount of time an algorithm can possibly take to complete.
  • 17. • For example, for a function f(n) • Ο(f(n)) < { g(n) : there exists c > 0 and n0 such that f(n) ≤ c.g(n) for all n > n0. }
  • 18. Omega Notation, Ω • The Ω(n) is the formal way to express the lower bound of an algorithm's running time. • It measures the best case time complexity or best amount of time an algorithm can possibly take to complete.
  • 19. • For example, for a function f(n) • Ω(f(n)) ≥ { g(n) : there exists c > 0 and n0 such that g(n) ≤ c.f(n) for all n > n0. }
  • 20. Theta Notation, θ • The θ(n) is the formal way to express both the lower bound and upper bound of an algorithm's running time. It is represented as following − • θ(f(n)) = { g(n) if and only if g(n) = Ο(f(n)) and g(n) = Ω(f(n)) for all n > n0. }
  • 21. Common Asymptotic Notations constant − Ο(1) logarithmic − Ο(log n) linear − Ο(n) n log n − Ο(n log n) quadratic − Ο(n 2 ) cubic − Ο(n 3 ) polynomial − n Ο(1) exponential − 2 Ο(n)