SlideShare a Scribd company logo
AlgorithmsAlgorithms
IntroductionIntroduction
• The methods of algorithm design form one of the core
practical technologies of computer science.
• The main aim of this lecture is to familiarize the student
with the framework we shall use through the course
about the design and analysis of algorithms.
• We start with a discussion of the algorithms needed to
solve computational problems. The problem of sorting is
used as a running example.
• We introduce a pseudocode to show how we shall
specify the algorithms.
AlgorithmsAlgorithms
• The word algorithm comes from the name of a Persian
mathematician Abu Ja’far Mohammed ibn-i Musa al
Khowarizmi.
• In computer science, this word refers to a special
method useable by a computer for solution of a problem.
The statement of the problem specifies in general terms
the desired input/output relationship.
• For example, sorting a given sequence of numbers into
nondecreasing order provides fertile ground for
introducing many standard design techniques and
analysis tools.
The problem of sortingThe problem of sorting
Insertion SortInsertion Sort
Example of Insertion SortExample of Insertion Sort
Example of Insertion SortExample of Insertion Sort
Example of Insertion SortExample of Insertion Sort
Example of Insertion SortExample of Insertion Sort
Example of Insertion SortExample of Insertion Sort
Example of Insertion SortExample of Insertion Sort
Example of Insertion SortExample of Insertion Sort
Example of Insertion SortExample of Insertion Sort
Example of Insertion SortExample of Insertion Sort
Example of Insertion SortExample of Insertion Sort
Example of Insertion SortExample of Insertion Sort
Analysis of algorithmsAnalysis of algorithms
The theoretical study of computer-program
performance and resource usage.
What’s more important than performance?
• modularity
• correctness
• maintainability
• functionality
• robustness
• user-friendliness
• programmer time
• simplicity
• extensibility
• reliability
Analysis of algorithmsAnalysis of algorithms
Why study algorithms and performance?
• Algorithms help us to understand scalability.
• Performance often draws the line between what is feasible
and what is impossible.
• Algorithmic mathematics provides a language for talking
about program behavior.
• The lessons of program performance generalize to other
computing resources.
• Speed is fun!
Running TimeRunning Time
• The running time depends on the input: an already
sorted sequence is easier to sort.
• Parameterize the running time by the size of the
input, since short sequences are easier to sort than
long ones.
• Generally, we seek upper bounds on the running
time, because everybody likes a guarantee.
Kinds of analysesKinds of analyses
Worst-case: (usually)
• T(n) = maximum time of algorithm on any input of
size n.
Average-case: (sometimes)
• T(n) = expected time of algorithm over all inputs of
size n.
• Need assumption of statistical distribution of inputs.
Best-case:
• Cheat with a slow algorithm that works fast on some
input.
Machine-Machine-IIndependent timendependent time
The RAM Model
Machine independent algorithm design depends on a
hypothetical computer called Random Acces Machine (RAM).
Assumptions:
• Each simple operation such as +, -, if ...etc takes exactly
one time step.
• Loops and subroutines are not considered simple
operations.
• Each memory acces takes exactly one time step.
Machine-independent timeMachine-independent time
What is insertion sort’s worst-case time?
• It depends on the speed of our computer,
• relative speed (on the same machine),
• absolute speed (on different machines).
BIG IDEA:
• Ignore machine-dependent constants.
• Look at growth of
“Asymptotic Analysis”
∞→nnT as)(
Machine-independent time: An exampleMachine-independent time: An example
A pseudocode for insertion sort ( INSERTION SORT ).
INSERTION-SORT(A)
1 for j ← 2 to length [A]
2 do key ← A[ j]
3 ∇ Insert A[j] into the sortted sequence A[1,..., j-1].
4 i ← j – 1
5 while i > 0 and A[i] > key
6 do A[i+1] ← A[i]
7 i ← i – 1
8 A[i +1] ← key
Analysis of INSERTION-SORT(contd.)Analysis of INSERTION-SORT(contd.)
1]1[8
)1(17
)1(][]1[6
][05
114
10]11[sequence
sortedtheinto][Insert3
1][2
][21
timescostSORT(A)-INSERTION
8
27
26
25
4
2
1
−←+
−−←
−←+
>>
−−←
−−⋅⋅
∇
−←
←
∑
∑
∑
=
=
=
nckeyiA
tcii
tciAiA
tckeyiAandi
ncji
njA
jA
ncjAkey
ncAlengthj
n
j j
n
j j
n
j j
do
while
do
tofor
Analysis of INSERTION-SORT(contd.)Analysis of INSERTION-SORT(contd.)
)1()1()1()(
2
6
2
5421 −++−+−+= ∑∑
==
n
j
j
n
j
j tctcncnccnT
).1()1( 8
2
7 −+−+ ∑
=
nctc
n
j
j
The total running time is
Analysis of INSERTION-SORT(contd.)Analysis of INSERTION-SORT(contd.)
The best case: The array is already sorted.
(tj =1 for j=2,3, ...,n)
)1()1()1()1()( 85421 −+−+−+−+= ncncncncncnT
).()( 854285421 ccccnccccc +++−++++=
Analysis of INSERTION-SORT(contd.)Analysis of INSERTION-SORT(contd.)
•The worst case: The array is reverse sorted
(tj =j for j=2,3, ...,n).
)12/)1(()1()( 521 −++−+= nncncncnT
)1()2/)1(()2/)1(( 876 −+−+−+ ncnncnnc
ncccccccnccc )2/2/2/()2/2/2/( 8765421
2
765 +−−++++++=
2
)1(
1
+
=∑
=
nn
j
n
j
cbnannT ++= 2
)(
Growth of FunctionsGrowth of Functions
Although we can sometimes determine the exact
running time of an algorithm, the extra precision is not
usually worth the effort of computing it.
For large inputs, the multiplicative constants and lower
order terms of an exact running time are dominated by
the effects of the input size itself.
Asymptotic NotationAsymptotic Notation
The notation we use to describe the asymptotic running
time of an algorithm are defined in terms of functions
whose domains are the set of natural numbers
{ }...,2,1,0=N
O-notationO-notation
• For a given function , we denote by the
set of functions
• We use O-notation to give an asymptotic upper bound of
a function, to within a constant factor.
• means that there existes some constant c
s.t. is always for large enough n.
)(ng ))(( ngO






≥≤≤
=
0
0
allfor)()(0
s.t.andconstantspositiveexistthere:)(
))((
nnncgnf
ncnf
ngO
))(()( ngOnf =
)(ncg≤)(nf
ΩΩ--OmegaOmega notationnotation
• For a given function , we denote by the
set of functions
• We use Ω-notation to give an asymptotic lower bound on
a function, to within a constant factor.
• means that there exists some constant c s.t.
is always for large enough n.
)(ng ))(( ngΩ






≥≤≤
=Ω
0
0
allfor)()(0
s.t.andconstantspositiveexistthere:)(
))((
nnnfncg
ncnf
ng
))(()( ngnf Ω=
)(nf )(ncg≥
--ThetaTheta notationnotation
• For a given function , we denote by the
set of functions
• A function belongs to the set if there
exist positive constants and such that it can be
“sand- wiched” between and or sufficienly
large n.
• means that there exists some constant c1
and c2 s.t. for large enough n.
)(ng ))(( ngΘ






≥≤≤≤
=Θ
021
021
allfor)()()(c0
s.t.and,,constantspositiveexistthere:)(
))((
nnngcnfng
nccnf
ng
)(nf ))(( ngΘ
1c 2c
)(1 ngc )(2 ngc
Θ
))(()( ngnf Θ=
)()()( 21 ngcnfngc ≤≤
Asymptotic notationAsymptotic notation
Graphic examples of and .ΩΘ ,, O
2
2
22
1 3
2
1
ncnnnc ≤−≤
21
3
2
1
c
n
c ≤−≤
Example 1.Example 1.
Show that
We must find c1 and c2 such that
Dividing bothsides by n2 yields
For
)(3
2
1
)( 22
nnnnf Θ=−=
)(3
2
1
,7 22
0 nnnn Θ=−≥
TheoremTheorem
• For any two functions and , we have
if and only if
)(ng
))(()( ngnf Θ=
)(nf
)).(()(and))(()( ngnfngOnf Ω==
Because :
)2(5223 nnn Ω=+−
Example 2.Example 2.
)2(5223)( nnnnf Θ=+−=
)2(5223 nOnn =+−
Example 3.Example 3.
610033,3forsince)(61003 2222
+−>==+− nnncnOnn
Example 3.Example 3.
3when61003,1forsince)(61003
610033,3forsince)(61003
2332
2222
>+−>==+−
+−>==+−
nnnncnOnn
nnncnOnn
Example 3.Example 3.
cnncncnOnn
nnnncnOnn
nnncnOnn
><≠+−
>+−>==+−
+−>==+−
when3,anyforsince)(61003
3when61003,1forsince)(61003
610033,3forsince)(61003
22
2332
2222
Example 3.Example 3.
100when610032,2forsince)(61003
when3,anyforsince)(61003
3when61003,1forsince)(61003
610033,3forsince)(61003
2222
22
2332
2222
>+−<=Ω=+−
><≠+−
>+−>==+−
+−>==+−
nnnncnnn
cnncncnOnn
nnnncnOnn
nnncnOnn
Example 3.Example 3.
3when61003,3forsince)(61003
100when610032,2forsince)(61003
when3,anyforsince)(61003
3when61003,1forsince)(61003
610033,3forsince)(61003
3232
2222
22
2332
2222
><+−=Ω≠+−
>+−<=Ω=+−
><≠+−
>+−>==+−
+−>==+−
nnnncnnn
nnnncnnn
cnncncnOnn
nnnncnOnn
nnncnOnn
Example 3.Example 3.
100when61003,anyforsince)(61003
3when61003,3forsince)(61003
100when610032,2forsince)(61003
when3,anyforsince)(61003
3when61003,1forsince)(61003
610033,3forsince)(61003
22
3232
2222
22
2332
2222
>+−<Ω=+−
><+−=Ω≠+−
>+−<=Ω=+−
><≠+−
>+−>==+−
+−>==+−
nnncncnnn
nnnncnnn
nnnncnnn
cnncncnOnn
nnnncnOnn
nnncnOnn
Example 3.Example 3.
apply.andbothsince)(61003
100when61003,anyforsince)(61003
3when61003,3forsince)(61003
100when610032,2forsince)(61003
when3,anyforsince)(61003
3when61003,1forsince)(61003
610033,3forsince)(61003
22
22
3232
2222
22
2332
2222
ΩΘ=+−
>+−<Ω=+−
><+−=Ω≠+−
>+−<=Ω=+−
><≠+−
>+−>==+−
+−>==+−
Onnn
nnncncnnn
nnnncnnn
nnnncnnn
cnncncnOnn
nnnncnOnn
nnncnOnn
Example 3.Example 3.
applies.onlysince)(61003
apply.andbothsince)(61003
100when61003,anyforsince)(61003
3when61003,3forsince)(61003
100when610032,2forsince)(61003
when3,anyforsince)(61003
3when61003,1forsince)(61003
610033,3forsince)(61003
32
22
22
3232
2222
22
2332
2222
Onnn
Onnn
nnncncnnn
nnnncnnn
nnnncnnn
cnncncnOnn
nnnncnOnn
nnncnOnn
Θ≠+−
ΩΘ=+−
>+−<Ω=+−
><+−=Ω≠+−
>+−<=Ω=+−
><≠+−
>+−>==+−
+−>==+−
Example 3.Example 3.
applies.onlysince)(61003
applies.onlysince)(61003
apply.andbothsince)(61003
100when61003,anyforsince)(61003
3when61003,3forsince)(61003
100when610032,2forsince)(61003
when3,anyforsince)(61003
3when61003,1forsince)(61003
610033,3forsince)(61003
2
32
22
22
3232
2222
22
2332
2222
ΩΘ≠+−
Θ≠+−
ΩΘ=+−
>+−<Ω=+−
><+−=Ω≠+−
>+−<=Ω=+−
><≠+−
>+−>==+−
+−>==+−
nnn
Onnn
Onnn
nnncncnnn
nnnncnnn
nnnncnnn
cnncncnOnn
nnnncnOnn
nnncnOnn
Standard notations and common functionsStandard notations and common functions
• Floors and ceilings
    11 +<≤≤<− xxxxx
Standard notations and common functionsStandard notations and common functions
• Logarithms:
)lg(lglglg
)(loglog
logln
loglg 2
nn
nn
nn
nn
kk
e
=
=
=
=
Standard notations and common functionsStandard notations and common functions
• Logarithms:
For all real a>0, b>0, c>0, and n
b
a
a
ana
baab
ba
c
c
b
b
n
b
ccc
ab
log
log
log
loglog
loglog)(log
log
=
=
+=
=
Standard notations and common functionsStandard notations and common functions
• Logarithms:
b
a
ca
aa
a
b
ac
bb
bb
log
1
log
log)/1(log
loglog
=
=
−=
Standard notations and common functionsStandard notations and common functions
• Factorials
For the Stirling approximation:












Θ+





π=
ne
n
nn
n
1
12!
0≥n
)lg()!lg(
)2(!
)(!
nnn
n
non
n
n
Θ=
ω=
=

More Related Content

PPT
Algorithm in Computer, Sorting and Notations
PPTX
Algorithms - "Chapter 2 getting started"
PDF
Analysis and design of algorithms part2
PDF
Anlysis and design of algorithms part 1
PPT
Design and analysis of Algorithm By Dr. B. J. Mohite
PPTX
Algorithm analysis (All in one)
PPT
Introduction to Algorithms
PPT
Algorithm And analysis Lecture 03& 04-time complexity.
Algorithm in Computer, Sorting and Notations
Algorithms - "Chapter 2 getting started"
Analysis and design of algorithms part2
Anlysis and design of algorithms part 1
Design and analysis of Algorithm By Dr. B. J. Mohite
Algorithm analysis (All in one)
Introduction to Algorithms
Algorithm And analysis Lecture 03& 04-time complexity.

What's hot (19)

PDF
Algorithms Lecture 2: Analysis of Algorithms I
PDF
Algorithm chapter 2
PDF
Algorithem complexity in data sructure
PPT
Fundamentals of the Analysis of Algorithm Efficiency
PDF
Algorithms lecture 3
PPT
chapter 1
PPT
Design and Analysis of Algorithms
PPT
Analysis of Algorithms
PPT
Cis435 week01
PPTX
Complexity analysis in Algorithms
PPT
Algorithm analysis
PPT
Basic terminologies & asymptotic notations
PPT
Data Structures and Algorithm Analysis
PPT
Introducción al Análisis y diseño de algoritmos
PPT
PDF
Daa notes 2
PDF
01 Analysis of Algorithms: Introduction
PPT
Analysis Of Algorithms I
PPT
Kk20503 1 introduction
Algorithms Lecture 2: Analysis of Algorithms I
Algorithm chapter 2
Algorithem complexity in data sructure
Fundamentals of the Analysis of Algorithm Efficiency
Algorithms lecture 3
chapter 1
Design and Analysis of Algorithms
Analysis of Algorithms
Cis435 week01
Complexity analysis in Algorithms
Algorithm analysis
Basic terminologies & asymptotic notations
Data Structures and Algorithm Analysis
Introducción al Análisis y diseño de algoritmos
Daa notes 2
01 Analysis of Algorithms: Introduction
Analysis Of Algorithms I
Kk20503 1 introduction
Ad

Similar to Algorithm (20)

PDF
Algorithm analysis insertion sort and asymptotic notations
PPT
algorithm_lec_1eregdsgdfgdgdfgdfgdfg.ppt
PPTX
Unit 1.pptx
PPTX
02 Introduction to Data Structures & Algorithms.pptx
PDF
Data Structure & Algorithms - Introduction
PDF
DAA - chapter 1.pdf
PPTX
Algorithms : Introduction and Analysis
PDF
Analysis of Algorithms
PDF
Design & Analysis of Algorithms Lecture Notes
PPT
introegthnhhdfhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhppt
PPTX
asymptotic analysis and insertion sort analysis
PDF
Advanced Datastructures and algorithms CP4151unit1b.pdf
PPT
Design and analysis of algorithm in Computer Science
PDF
Annotations.pdf
PDF
Data Structure - Lecture 1 - Introduction.pdf
PDF
Data Structures (BE)
PPTX
Module-1.pptxbdjdhcdbejdjhdbchchchchchjcjcjc
PPTX
L1_Start_of_Learning_of_Algorithms_Basics.pptx
Algorithm analysis insertion sort and asymptotic notations
algorithm_lec_1eregdsgdfgdgdfgdfgdfg.ppt
Unit 1.pptx
02 Introduction to Data Structures & Algorithms.pptx
Data Structure & Algorithms - Introduction
DAA - chapter 1.pdf
Algorithms : Introduction and Analysis
Analysis of Algorithms
Design & Analysis of Algorithms Lecture Notes
introegthnhhdfhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhppt
asymptotic analysis and insertion sort analysis
Advanced Datastructures and algorithms CP4151unit1b.pdf
Design and analysis of algorithm in Computer Science
Annotations.pdf
Data Structure - Lecture 1 - Introduction.pdf
Data Structures (BE)
Module-1.pptxbdjdhcdbejdjhdbchchchchchjcjcjc
L1_Start_of_Learning_of_Algorithms_Basics.pptx
Ad

Recently uploaded (20)

PPT
Mechanical Engineering MATERIALS Selection
PPTX
Recipes for Real Time Voice AI WebRTC, SLMs and Open Source Software.pptx
PDF
keyrequirementskkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk
PPTX
Infosys Presentation by1.Riyan Bagwan 2.Samadhan Naiknavare 3.Gaurav Shinde 4...
PPTX
KTU 2019 -S7-MCN 401 MODULE 2-VINAY.pptx
PDF
The CXO Playbook 2025 – Future-Ready Strategies for C-Suite Leaders Cerebrai...
PPTX
Geodesy 1.pptx...............................................
PPTX
CH1 Production IntroductoryConcepts.pptx
PPTX
additive manufacturing of ss316l using mig welding
PPTX
CYBER-CRIMES AND SECURITY A guide to understanding
PPTX
bas. eng. economics group 4 presentation 1.pptx
PPTX
Internet of Things (IOT) - A guide to understanding
DOCX
ASol_English-Language-Literature-Set-1-27-02-2023-converted.docx
PDF
TFEC-4-2020-Design-Guide-for-Timber-Roof-Trusses.pdf
PDF
PRIZ Academy - 9 Windows Thinking Where to Invest Today to Win Tomorrow.pdf
PPTX
Lecture Notes Electrical Wiring System Components
PDF
Evaluating the Democratization of the Turkish Armed Forces from a Normative P...
PPT
CRASH COURSE IN ALTERNATIVE PLUMBING CLASS
DOCX
573137875-Attendance-Management-System-original
PPTX
CARTOGRAPHY AND GEOINFORMATION VISUALIZATION chapter1 NPTE (2).pptx
Mechanical Engineering MATERIALS Selection
Recipes for Real Time Voice AI WebRTC, SLMs and Open Source Software.pptx
keyrequirementskkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk
Infosys Presentation by1.Riyan Bagwan 2.Samadhan Naiknavare 3.Gaurav Shinde 4...
KTU 2019 -S7-MCN 401 MODULE 2-VINAY.pptx
The CXO Playbook 2025 – Future-Ready Strategies for C-Suite Leaders Cerebrai...
Geodesy 1.pptx...............................................
CH1 Production IntroductoryConcepts.pptx
additive manufacturing of ss316l using mig welding
CYBER-CRIMES AND SECURITY A guide to understanding
bas. eng. economics group 4 presentation 1.pptx
Internet of Things (IOT) - A guide to understanding
ASol_English-Language-Literature-Set-1-27-02-2023-converted.docx
TFEC-4-2020-Design-Guide-for-Timber-Roof-Trusses.pdf
PRIZ Academy - 9 Windows Thinking Where to Invest Today to Win Tomorrow.pdf
Lecture Notes Electrical Wiring System Components
Evaluating the Democratization of the Turkish Armed Forces from a Normative P...
CRASH COURSE IN ALTERNATIVE PLUMBING CLASS
573137875-Attendance-Management-System-original
CARTOGRAPHY AND GEOINFORMATION VISUALIZATION chapter1 NPTE (2).pptx

Algorithm