SlideShare a Scribd company logo
Analysis and Design of Algorithms
Analysis of Algorithms II
Analysis and Design of Algorithms
Maximum Pairwise Product
Fibonacci
Greatest Common Divisors
Analysis and Design of Algorithms
Maximum Pairwise Product
Analysis and Design of Algorithms
Given a sequence of non-negative integers a0,…,an−1, find
the maximum pairwise product, that is, the largest integer
that can be obtained by multiplying two different elements
from the sequence (or, more formally, max aiaj where
0≤i≠j≤n−1). Different elements here mean ai and aj with
i≠j (it can be the case that ai=aj).
Analysis and Design of Algorithms
Constraints 2≤n≤2 * 105 & 0≤a0,…,an−1≤105.
Analysis and Design of Algorithms
 Sample 1
 Input: 1 2 3
 Output:6
 Sample 2
 Input: 7 5 14 2 8 8 10 1 2 3
 Output:140
Analysis and Design of Algorithms
 Sample 3
 Input: 4 6 2 6 1
 Output:36
Analysis and Design of Algorithms
 Assume the following array
2 4 3 5 1
Analysis and Design of Algorithms
 Assume the following array
2 4 3 5 1
i j
Result=0
Analysis and Design of Algorithms
 Assume the following array
2 4 3 5 1
i j
If a[i]*a[j] > result
result=a[i]*a[j]=8
Analysis and Design of Algorithms
 Assume the following array
2 4 3 5 1
i j
If a[i]*a[j] > result
result=8
Analysis and Design of Algorithms
 Assume the following array
2 4 3 5 1
i j
If a[i]*a[j] > result
result= a[i]*a[j] =10
Analysis and Design of Algorithms
 Naive algorithm
Analysis and Design of Algorithms
 Python Code:
Analysis and Design of Algorithms
 Time complexity O(n2)
Analysis and Design of Algorithms
we need a faster algorithm. This is because our program
performs about n2 steps on a sequence of length n. For the
maximal possible value n=200,000 = 2*105, the number
of steps is 40,000,000,000 = 4*1010. This is too much.
Recall that modern machines can perform roughly 109
basic operations per second
Analysis and Design of Algorithms
 Assume the following array
2 4 3 5 1
Analysis and Design of Algorithms
 Find maximum number1
2 4 3 5 1
max1
Analysis and Design of Algorithms
 Find maximum number2 but not maximum number1
2 4 3 5 1
max2 max1
Analysis and Design of Algorithms
 Find maximum number2 but not maximum number1
2 4 3 5 1
max2 max1
return max1*max2
Analysis and Design of Algorithms
 Efficient
algorithm
Analysis and Design of Algorithms
 Efficient algorithm
Analysis and Design of Algorithms
 Time complexity O(n)
Analysis and Design of Algorithms
Fibonacci
Analysis and Design of Algorithms
0,1,1,2,3,5,8,13,21,34, …
Analysis and Design of Algorithms
Definition:
𝐹𝑛 =
0 𝑛 = 0
1 𝑛 = 1
𝐹𝑛−2 + 𝐹𝑛−1 𝑛 > 1
Analysis and Design of Algorithms
Examples:
𝐹8 = 21
𝐹20 = 6765
𝐹50 = 12586269025
𝐹100 = 354224848179261915075
Analysis and Design of Algorithms
 Examples:
𝐹500 =
1394232245616978801397243828
7040728395007025658769730726
4108962948325571622863290691
557658876222521294125
Analysis and Design of Algorithms
 Naive algorithm
Analysis and Design of Algorithms
 Naive algorithm
Very Long Time why????
Analysis and Design of Algorithms
Analysis and Design of Algorithms
Analysis and Design of Algorithms
F6
F5
F4
F3
F2
F1
F0
F0
F1
F0
F2
F1
F0
F0
F3
F2
F1
F0
F0
F1
F0
F4
F3
F2
F1
F0
F0
F1
F0
F2
F1
F0
F0
Analysis and Design of Algorithms
Fib algorithm is very slow because of
recursion
Time complexity = O(2n)
Analysis and Design of Algorithms
 Efficient algorithm
0 1 1 2 3 5
Create array then insert fibonacci
Analysis and Design of Algorithms
 Efficient algorithm
Analysis and Design of Algorithms
 Efficient algorithm
short Time why????
Analysis and Design of Algorithms
Fib_Fast algorithm is fast because of
loop + array
Time complexity = O(n2)
Analysis and Design of Algorithms
 Efficient algorithm
 Try
Very long Time why????
Analysis and Design of Algorithms
Advanced algorithm
No array
Need two variable + Loop
Analysis and Design of Algorithms
 Advanced algorithm
 Compute F6
 a=0, b=1
0 1
a b
Analysis and Design of Algorithms
 Advanced algorithm
 Compute F6
 a=b, b=a+b
1 1
a b
Analysis and Design of Algorithms
 Advanced algorithm
 Compute F6
 a=b, b=a+b
1 2
a b
Analysis and Design of Algorithms
 Advanced algorithm
 Compute F6
 a=b, b=a+b
2 3
a b
Analysis and Design of Algorithms
 Advanced algorithm
 Compute F6
 a=b, b=a+b
3 5
a b
Analysis and Design of Algorithms
 Advanced algorithm
 Compute F6
 a=b, b=a+b
5 8
a b
Analysis and Design of Algorithms
 Advanced algorithm
 Compute F6=8
5 8
a b
Analysis and Design of Algorithms
 Advanced algorithm
Analysis and Design of Algorithms
 Advanced algorithm
Very short Time why????
Analysis and Design of Algorithms
Fib_Faster algorithm is faster because
of loop + two variables
Time complexity = O(n)
Analysis and Design of Algorithms
 Advanced algorithm
 Try
Short Time why????
Analysis and Design of Algorithms
Greatest Common Divisors
Analysis and Design of Algorithms
In mathematics, the greatest common divisor
(gcd) of two or more integers, which are not all
zero, is the largest positive integer that divides
each of the integers.
Analysis and Design of Algorithms
Input Integers a,b >=0
Output gcd(a,b)
Analysis and Design of Algorithms
 What is the greatest common divisor of 54 and 24?
 The divisors of 54 are: 1,2,3,6,9,18,27,54
 Similarly, the divisors of 24 are: 1,2,3,4,6,8,12,24
 The numbers that these two lists share in common are the common
divisors of 54 and 24: 1,2,3,6
 The greatest of these is 6. That is, the greatest common divisor of 54
and 24. gcd(54,24)=6
Analysis and Design of Algorithms
 Naive algorithm
Analysis and Design of Algorithms
Analysis and Design of Algorithms
gcd algorithm is slow because of loop
Time complexity = O(n)
n depend on a,b
Analysis and Design of Algorithms
 Efficient algorithm
Analysis and Design of Algorithms
 Efficient algorithm
Analysis and Design of Algorithms
 Efficient algorithm
gcd_fast((3918848, 1653264))
gcd_fast((1653264, 612320))
gcd_fast((612320, 428624))
gcd_fast((428624, 183696))
gcd_fast((183696, 61232))
return 61232
Analysis and Design of Algorithms
Efficient algorithm
Take 5 steps to solve gcd_fast( ( 3918848, 1653264 ) )
Time complexity = O(log(n))
 n depend on a,b
Analysis and Design of Algorithms
Naive algorithm is too slow.
The Efficient algorithm is much better.
Finding the correct algorithm requires knowing
something interesting about the problem.
Analysis and Design of Algorithms
facebook.com/mloey
mohamedloey@gmail.com
twitter.com/mloey
linkedin.com/in/mloey
mloey@fci.bu.edu.eg
mloey.github.io
Analysis and Design of Algorithms
www.YourCompany.com
© 2020 Companyname PowerPoint Business Theme. All Rights Reserved.
THANKS FOR
YOUR TIME
Ad

Recommended

Algorithms Lecture 2: Analysis of Algorithms I
Algorithms Lecture 2: Analysis of Algorithms I
Mohamed Loey
 
Algorithms Lecture 5: Sorting Algorithms II
Algorithms Lecture 5: Sorting Algorithms II
Mohamed Loey
 
Algorithms Lecture 6: Searching Algorithms
Algorithms Lecture 6: Searching Algorithms
Mohamed Loey
 
Algorithms Lecture 4: Sorting Algorithms I
Algorithms Lecture 4: Sorting Algorithms I
Mohamed Loey
 
Algorithms Lecture 1: Introduction to Algorithms
Algorithms Lecture 1: Introduction to Algorithms
Mohamed Loey
 
Algorithms Lecture 7: Graph Algorithms
Algorithms Lecture 7: Graph Algorithms
Mohamed Loey
 
Presentation on Elementary data structures
Presentation on Elementary data structures
Kuber Chandra
 
Dynamic programming
Dynamic programming
Yıldırım Tam
 
chapter 1
chapter 1
yatheesha
 
Analysis of algorithm
Analysis of algorithm
Rajendra Dangwal
 
Lecture 2 data structures and algorithms
Lecture 2 data structures and algorithms
Aakash deep Singhal
 
Divide and conquer
Divide and conquer
Dr Shashikant Athawale
 
Data Structure and Algorithms.pptx
Data Structure and Algorithms.pptx
Syed Zaid Irshad
 
Dinive conquer algorithm
Dinive conquer algorithm
Mohd Arif
 
Algorithms Lecture 8: Pattern Algorithms
Algorithms Lecture 8: Pattern Algorithms
Mohamed Loey
 
Complexity of Algorithm
Complexity of Algorithm
Muhammad Muzammal
 
Asymptotic Notation and Complexity
Asymptotic Notation and Complexity
Rajandeep Gill
 
Data structures and algorithms
Data structures and algorithms
Julie Iskander
 
Solving recurrences
Solving recurrences
Megha V
 
Algorithm Complexity and Main Concepts
Algorithm Complexity and Main Concepts
Adelina Ahadova
 
Unit 1 chapter 1 Design and Analysis of Algorithms
Unit 1 chapter 1 Design and Analysis of Algorithms
P. Subathra Kishore, KAMARAJ College of Engineering and Technology, Madurai
 
Design and Analysis of Algorithms
Design and Analysis of Algorithms
Swapnil Agrawal
 
Daa unit 1
Daa unit 1
Abhimanyu Mishra
 
Lecture 4 asymptotic notations
Lecture 4 asymptotic notations
jayavignesh86
 
Asymptotic notations
Asymptotic notations
Nikhil Sharma
 
Binary search
Binary search
AparnaKumari31
 
Graph coloring using backtracking
Graph coloring using backtracking
shashidharPapishetty
 
how to calclute time complexity of algortihm
how to calclute time complexity of algortihm
Sajid Marwat
 
Computer Security Lecture 5: Simplified Advanced Encryption Standard
Computer Security Lecture 5: Simplified Advanced Encryption Standard
Mohamed Loey
 
Deep Learning - Overview of my work II
Deep Learning - Overview of my work II
Mohamed Loey
 

More Related Content

What's hot (20)

chapter 1
chapter 1
yatheesha
 
Analysis of algorithm
Analysis of algorithm
Rajendra Dangwal
 
Lecture 2 data structures and algorithms
Lecture 2 data structures and algorithms
Aakash deep Singhal
 
Divide and conquer
Divide and conquer
Dr Shashikant Athawale
 
Data Structure and Algorithms.pptx
Data Structure and Algorithms.pptx
Syed Zaid Irshad
 
Dinive conquer algorithm
Dinive conquer algorithm
Mohd Arif
 
Algorithms Lecture 8: Pattern Algorithms
Algorithms Lecture 8: Pattern Algorithms
Mohamed Loey
 
Complexity of Algorithm
Complexity of Algorithm
Muhammad Muzammal
 
Asymptotic Notation and Complexity
Asymptotic Notation and Complexity
Rajandeep Gill
 
Data structures and algorithms
Data structures and algorithms
Julie Iskander
 
Solving recurrences
Solving recurrences
Megha V
 
Algorithm Complexity and Main Concepts
Algorithm Complexity and Main Concepts
Adelina Ahadova
 
Unit 1 chapter 1 Design and Analysis of Algorithms
Unit 1 chapter 1 Design and Analysis of Algorithms
P. Subathra Kishore, KAMARAJ College of Engineering and Technology, Madurai
 
Design and Analysis of Algorithms
Design and Analysis of Algorithms
Swapnil Agrawal
 
Daa unit 1
Daa unit 1
Abhimanyu Mishra
 
Lecture 4 asymptotic notations
Lecture 4 asymptotic notations
jayavignesh86
 
Asymptotic notations
Asymptotic notations
Nikhil Sharma
 
Binary search
Binary search
AparnaKumari31
 
Graph coloring using backtracking
Graph coloring using backtracking
shashidharPapishetty
 
how to calclute time complexity of algortihm
how to calclute time complexity of algortihm
Sajid Marwat
 
Lecture 2 data structures and algorithms
Lecture 2 data structures and algorithms
Aakash deep Singhal
 
Data Structure and Algorithms.pptx
Data Structure and Algorithms.pptx
Syed Zaid Irshad
 
Dinive conquer algorithm
Dinive conquer algorithm
Mohd Arif
 
Algorithms Lecture 8: Pattern Algorithms
Algorithms Lecture 8: Pattern Algorithms
Mohamed Loey
 
Asymptotic Notation and Complexity
Asymptotic Notation and Complexity
Rajandeep Gill
 
Data structures and algorithms
Data structures and algorithms
Julie Iskander
 
Solving recurrences
Solving recurrences
Megha V
 
Algorithm Complexity and Main Concepts
Algorithm Complexity and Main Concepts
Adelina Ahadova
 
Design and Analysis of Algorithms
Design and Analysis of Algorithms
Swapnil Agrawal
 
Lecture 4 asymptotic notations
Lecture 4 asymptotic notations
jayavignesh86
 
Asymptotic notations
Asymptotic notations
Nikhil Sharma
 
how to calclute time complexity of algortihm
how to calclute time complexity of algortihm
Sajid Marwat
 

Viewers also liked (6)

Computer Security Lecture 5: Simplified Advanced Encryption Standard
Computer Security Lecture 5: Simplified Advanced Encryption Standard
Mohamed Loey
 
Deep Learning - Overview of my work II
Deep Learning - Overview of my work II
Mohamed Loey
 
PMP Lecture 1: Introduction to Project Management
PMP Lecture 1: Introduction to Project Management
Mohamed Loey
 
Computer Security Lecture 7: RSA
Computer Security Lecture 7: RSA
Mohamed Loey
 
Convolutional Neural Network Models - Deep Learning
Convolutional Neural Network Models - Deep Learning
Mohamed Loey
 
C++ Programming Language
C++ Programming Language
Mohamed Loey
 
Computer Security Lecture 5: Simplified Advanced Encryption Standard
Computer Security Lecture 5: Simplified Advanced Encryption Standard
Mohamed Loey
 
Deep Learning - Overview of my work II
Deep Learning - Overview of my work II
Mohamed Loey
 
PMP Lecture 1: Introduction to Project Management
PMP Lecture 1: Introduction to Project Management
Mohamed Loey
 
Computer Security Lecture 7: RSA
Computer Security Lecture 7: RSA
Mohamed Loey
 
Convolutional Neural Network Models - Deep Learning
Convolutional Neural Network Models - Deep Learning
Mohamed Loey
 
C++ Programming Language
C++ Programming Language
Mohamed Loey
 
Ad

Similar to Algorithms Lecture 3: Analysis of Algorithms II (20)

3 analysis.gtm
3 analysis.gtm
Natarajan Angappan
 
Ch24 efficient algorithms
Ch24 efficient algorithms
rajatmay1992
 
BCS401 ADA First IA Test Question Bank.pdf
BCS401 ADA First IA Test Question Bank.pdf
VENKATESHBHAT25
 
Module-1.pptxbdjdhcdbejdjhdbchchchchchjcjcjc
Module-1.pptxbdjdhcdbejdjhdbchchchchchjcjcjc
shashashashashank
 
AoA Lec Design of algorithm spresentation
AoA Lec Design of algorithm spresentation
HamzaSadaat
 
Analysis of algo
Analysis of algo
Sandeep Bhargava
 
Data Structures and Agorithm: DS 22 Analysis of Algorithm.pptx
Data Structures and Agorithm: DS 22 Analysis of Algorithm.pptx
RashidFaridChishti
 
Chapter one
Chapter one
mihiretu kassaye
 
Data Structures and Algorithms Lecture 2: Analysis of Algorithms, Asymptotic ...
Data Structures and Algorithms Lecture 2: Analysis of Algorithms, Asymptotic ...
TechVision8
 
Advanced Datastructures and algorithms CP4151unit1b.pdf
Advanced Datastructures and algorithms CP4151unit1b.pdf
Sheba41
 
Analysis.ppt
Analysis.ppt
ShivaniSharma335055
 
Lec1
Lec1
Anjneya Varshney
 
Unit 2 algorithm
Unit 2 algorithm
Dabbal Singh Mahara
 
Annotations.pdf
Annotations.pdf
GauravKumar295392
 
Cis435 week01
Cis435 week01
ashish bansal
 
Algorithm Design and Analysis
Algorithm Design and Analysis
Sayed Chhattan Shah
 
Lec1
Lec1
Nikhil Chilwant
 
Algorithm for the DAA agscsnak javausmagagah
Algorithm for the DAA agscsnak javausmagagah
RaviPandey598038
 
asymptotic analysis and insertion sort analysis
asymptotic analysis and insertion sort analysis
Anindita Kundu
 
Data Structure - Lecture 1 - Introduction.pdf
Data Structure - Lecture 1 - Introduction.pdf
donotreply20
 
Ch24 efficient algorithms
Ch24 efficient algorithms
rajatmay1992
 
BCS401 ADA First IA Test Question Bank.pdf
BCS401 ADA First IA Test Question Bank.pdf
VENKATESHBHAT25
 
Module-1.pptxbdjdhcdbejdjhdbchchchchchjcjcjc
Module-1.pptxbdjdhcdbejdjhdbchchchchchjcjcjc
shashashashashank
 
AoA Lec Design of algorithm spresentation
AoA Lec Design of algorithm spresentation
HamzaSadaat
 
Data Structures and Agorithm: DS 22 Analysis of Algorithm.pptx
Data Structures and Agorithm: DS 22 Analysis of Algorithm.pptx
RashidFaridChishti
 
Data Structures and Algorithms Lecture 2: Analysis of Algorithms, Asymptotic ...
Data Structures and Algorithms Lecture 2: Analysis of Algorithms, Asymptotic ...
TechVision8
 
Advanced Datastructures and algorithms CP4151unit1b.pdf
Advanced Datastructures and algorithms CP4151unit1b.pdf
Sheba41
 
Algorithm for the DAA agscsnak javausmagagah
Algorithm for the DAA agscsnak javausmagagah
RaviPandey598038
 
asymptotic analysis and insertion sort analysis
asymptotic analysis and insertion sort analysis
Anindita Kundu
 
Data Structure - Lecture 1 - Introduction.pdf
Data Structure - Lecture 1 - Introduction.pdf
donotreply20
 
Ad

More from Mohamed Loey (18)

Lecture 6: Deep Learning Applications
Lecture 6: Deep Learning Applications
Mohamed Loey
 
Lecture 5: Convolutional Neural Network Models
Lecture 5: Convolutional Neural Network Models
Mohamed Loey
 
Lecture 4: Deep Learning Frameworks
Lecture 4: Deep Learning Frameworks
Mohamed Loey
 
Lecture 4: How it Works: Convolutional Neural Networks
Lecture 4: How it Works: Convolutional Neural Networks
Mohamed Loey
 
Lecture 3: Convolutional Neural Networks
Lecture 3: Convolutional Neural Networks
Mohamed Loey
 
Lecture 2: Artificial Neural Network
Lecture 2: Artificial Neural Network
Mohamed Loey
 
Lecture 1: Deep Learning for Computer Vision
Lecture 1: Deep Learning for Computer Vision
Mohamed Loey
 
Design of an Intelligent System for Improving Classification of Cancer Diseases
Design of an Intelligent System for Improving Classification of Cancer Diseases
Mohamed Loey
 
Computer Security - CCNA Security - Lecture 2
Computer Security - CCNA Security - Lecture 2
Mohamed Loey
 
Computer Security - CCNA Security - Lecture 1
Computer Security - CCNA Security - Lecture 1
Mohamed Loey
 
Computer Security Lecture 4.1: DES Supplementary Material
Computer Security Lecture 4.1: DES Supplementary Material
Mohamed Loey
 
PMP Lecture 4: Project Integration Management
PMP Lecture 4: Project Integration Management
Mohamed Loey
 
Computer Security Lecture 4: Block Ciphers and the Data Encryption Standard
Computer Security Lecture 4: Block Ciphers and the Data Encryption Standard
Mohamed Loey
 
Computer Security Lecture 3: Classical Encryption Techniques 2
Computer Security Lecture 3: Classical Encryption Techniques 2
Mohamed Loey
 
Computer Security Lecture 2: Classical Encryption Techniques 1
Computer Security Lecture 2: Classical Encryption Techniques 1
Mohamed Loey
 
Computer Security Lecture 1: Overview
Computer Security Lecture 1: Overview
Mohamed Loey
 
PMP Lecture 3: Project Management Processes
PMP Lecture 3: Project Management Processes
Mohamed Loey
 
PMP Lecture 2: Project Management Framework
PMP Lecture 2: Project Management Framework
Mohamed Loey
 
Lecture 6: Deep Learning Applications
Lecture 6: Deep Learning Applications
Mohamed Loey
 
Lecture 5: Convolutional Neural Network Models
Lecture 5: Convolutional Neural Network Models
Mohamed Loey
 
Lecture 4: Deep Learning Frameworks
Lecture 4: Deep Learning Frameworks
Mohamed Loey
 
Lecture 4: How it Works: Convolutional Neural Networks
Lecture 4: How it Works: Convolutional Neural Networks
Mohamed Loey
 
Lecture 3: Convolutional Neural Networks
Lecture 3: Convolutional Neural Networks
Mohamed Loey
 
Lecture 2: Artificial Neural Network
Lecture 2: Artificial Neural Network
Mohamed Loey
 
Lecture 1: Deep Learning for Computer Vision
Lecture 1: Deep Learning for Computer Vision
Mohamed Loey
 
Design of an Intelligent System for Improving Classification of Cancer Diseases
Design of an Intelligent System for Improving Classification of Cancer Diseases
Mohamed Loey
 
Computer Security - CCNA Security - Lecture 2
Computer Security - CCNA Security - Lecture 2
Mohamed Loey
 
Computer Security - CCNA Security - Lecture 1
Computer Security - CCNA Security - Lecture 1
Mohamed Loey
 
Computer Security Lecture 4.1: DES Supplementary Material
Computer Security Lecture 4.1: DES Supplementary Material
Mohamed Loey
 
PMP Lecture 4: Project Integration Management
PMP Lecture 4: Project Integration Management
Mohamed Loey
 
Computer Security Lecture 4: Block Ciphers and the Data Encryption Standard
Computer Security Lecture 4: Block Ciphers and the Data Encryption Standard
Mohamed Loey
 
Computer Security Lecture 3: Classical Encryption Techniques 2
Computer Security Lecture 3: Classical Encryption Techniques 2
Mohamed Loey
 
Computer Security Lecture 2: Classical Encryption Techniques 1
Computer Security Lecture 2: Classical Encryption Techniques 1
Mohamed Loey
 
Computer Security Lecture 1: Overview
Computer Security Lecture 1: Overview
Mohamed Loey
 
PMP Lecture 3: Project Management Processes
PMP Lecture 3: Project Management Processes
Mohamed Loey
 
PMP Lecture 2: Project Management Framework
PMP Lecture 2: Project Management Framework
Mohamed Loey
 

Recently uploaded (20)

Chalukyas of Gujrat, Solanki Dynasty NEP.pptx
Chalukyas of Gujrat, Solanki Dynasty NEP.pptx
Dr. Ravi Shankar Arya Mahila P. G. College, Banaras Hindu University, Varanasi, India.
 
How to Manage Inventory Movement in Odoo 18 POS
How to Manage Inventory Movement in Odoo 18 POS
Celine George
 
How to Create an Event in Odoo 18 - Odoo 18 Slides
How to Create an Event in Odoo 18 - Odoo 18 Slides
Celine George
 
How to Implement Least Package Removal Strategy in Odoo 18 Inventory
How to Implement Least Package Removal Strategy in Odoo 18 Inventory
Celine George
 
How to Manage Multi Language for Invoice in Odoo 18
How to Manage Multi Language for Invoice in Odoo 18
Celine George
 
Paper 107 | From Watchdog to Lapdog: Ishiguro’s Fiction and the Rise of “Godi...
Paper 107 | From Watchdog to Lapdog: Ishiguro’s Fiction and the Rise of “Godi...
Rajdeep Bavaliya
 
Revista digital preescolar en transformación
Revista digital preescolar en transformación
guerragallardo26
 
Overview of Off Boarding in Odoo 18 Employees
Overview of Off Boarding in Odoo 18 Employees
Celine George
 
Assisting Individuals and Families to Promote and Maintain Health – Unit 7 | ...
Assisting Individuals and Families to Promote and Maintain Health – Unit 7 | ...
RAKESH SAJJAN
 
Capitol Doctoral Presentation -June 2025.pptx
Capitol Doctoral Presentation -June 2025.pptx
CapitolTechU
 
Non-Communicable Diseases and National Health Programs – Unit 10 | B.Sc Nursi...
Non-Communicable Diseases and National Health Programs – Unit 10 | B.Sc Nursi...
RAKESH SAJJAN
 
Measuring, learning and applying multiplication facts.
Measuring, learning and applying multiplication facts.
cgilmore6
 
Ray Dalio How Countries go Broke the Big Cycle
Ray Dalio How Countries go Broke the Big Cycle
Dadang Solihin
 
Publishing Your Memoir with Brooke Warner
Publishing Your Memoir with Brooke Warner
Brooke Warner
 
2025 June Year 9 Presentation: Subject selection.pptx
2025 June Year 9 Presentation: Subject selection.pptx
mansk2
 
How to Manage & Create a New Department in Odoo 18 Employee
How to Manage & Create a New Department in Odoo 18 Employee
Celine George
 
ABCs of Bookkeeping for Nonprofits TechSoup.pdf
ABCs of Bookkeeping for Nonprofits TechSoup.pdf
TechSoup
 
LDMMIA GRAD Student Check-in Orientation Sampler
LDMMIA GRAD Student Check-in Orientation Sampler
LDM & Mia eStudios
 
What is FIle and explanation of text files.pptx
What is FIle and explanation of text files.pptx
Ramakrishna Reddy Bijjam
 
What are the benefits that dance brings?
What are the benefits that dance brings?
memi27
 
How to Manage Inventory Movement in Odoo 18 POS
How to Manage Inventory Movement in Odoo 18 POS
Celine George
 
How to Create an Event in Odoo 18 - Odoo 18 Slides
How to Create an Event in Odoo 18 - Odoo 18 Slides
Celine George
 
How to Implement Least Package Removal Strategy in Odoo 18 Inventory
How to Implement Least Package Removal Strategy in Odoo 18 Inventory
Celine George
 
How to Manage Multi Language for Invoice in Odoo 18
How to Manage Multi Language for Invoice in Odoo 18
Celine George
 
Paper 107 | From Watchdog to Lapdog: Ishiguro’s Fiction and the Rise of “Godi...
Paper 107 | From Watchdog to Lapdog: Ishiguro’s Fiction and the Rise of “Godi...
Rajdeep Bavaliya
 
Revista digital preescolar en transformación
Revista digital preescolar en transformación
guerragallardo26
 
Overview of Off Boarding in Odoo 18 Employees
Overview of Off Boarding in Odoo 18 Employees
Celine George
 
Assisting Individuals and Families to Promote and Maintain Health – Unit 7 | ...
Assisting Individuals and Families to Promote and Maintain Health – Unit 7 | ...
RAKESH SAJJAN
 
Capitol Doctoral Presentation -June 2025.pptx
Capitol Doctoral Presentation -June 2025.pptx
CapitolTechU
 
Non-Communicable Diseases and National Health Programs – Unit 10 | B.Sc Nursi...
Non-Communicable Diseases and National Health Programs – Unit 10 | B.Sc Nursi...
RAKESH SAJJAN
 
Measuring, learning and applying multiplication facts.
Measuring, learning and applying multiplication facts.
cgilmore6
 
Ray Dalio How Countries go Broke the Big Cycle
Ray Dalio How Countries go Broke the Big Cycle
Dadang Solihin
 
Publishing Your Memoir with Brooke Warner
Publishing Your Memoir with Brooke Warner
Brooke Warner
 
2025 June Year 9 Presentation: Subject selection.pptx
2025 June Year 9 Presentation: Subject selection.pptx
mansk2
 
How to Manage & Create a New Department in Odoo 18 Employee
How to Manage & Create a New Department in Odoo 18 Employee
Celine George
 
ABCs of Bookkeeping for Nonprofits TechSoup.pdf
ABCs of Bookkeeping for Nonprofits TechSoup.pdf
TechSoup
 
LDMMIA GRAD Student Check-in Orientation Sampler
LDMMIA GRAD Student Check-in Orientation Sampler
LDM & Mia eStudios
 
What is FIle and explanation of text files.pptx
What is FIle and explanation of text files.pptx
Ramakrishna Reddy Bijjam
 
What are the benefits that dance brings?
What are the benefits that dance brings?
memi27
 

Algorithms Lecture 3: Analysis of Algorithms II

  • 1. Analysis and Design of Algorithms Analysis of Algorithms II
  • 2. Analysis and Design of Algorithms Maximum Pairwise Product Fibonacci Greatest Common Divisors
  • 3. Analysis and Design of Algorithms Maximum Pairwise Product
  • 4. Analysis and Design of Algorithms Given a sequence of non-negative integers a0,…,an−1, find the maximum pairwise product, that is, the largest integer that can be obtained by multiplying two different elements from the sequence (or, more formally, max aiaj where 0≤i≠j≤n−1). Different elements here mean ai and aj with i≠j (it can be the case that ai=aj).
  • 5. Analysis and Design of Algorithms Constraints 2≤n≤2 * 105 & 0≤a0,…,an−1≤105.
  • 6. Analysis and Design of Algorithms  Sample 1  Input: 1 2 3  Output:6  Sample 2  Input: 7 5 14 2 8 8 10 1 2 3  Output:140
  • 7. Analysis and Design of Algorithms  Sample 3  Input: 4 6 2 6 1  Output:36
  • 8. Analysis and Design of Algorithms  Assume the following array 2 4 3 5 1
  • 9. Analysis and Design of Algorithms  Assume the following array 2 4 3 5 1 i j Result=0
  • 10. Analysis and Design of Algorithms  Assume the following array 2 4 3 5 1 i j If a[i]*a[j] > result result=a[i]*a[j]=8
  • 11. Analysis and Design of Algorithms  Assume the following array 2 4 3 5 1 i j If a[i]*a[j] > result result=8
  • 12. Analysis and Design of Algorithms  Assume the following array 2 4 3 5 1 i j If a[i]*a[j] > result result= a[i]*a[j] =10
  • 13. Analysis and Design of Algorithms  Naive algorithm
  • 14. Analysis and Design of Algorithms  Python Code:
  • 15. Analysis and Design of Algorithms  Time complexity O(n2)
  • 16. Analysis and Design of Algorithms we need a faster algorithm. This is because our program performs about n2 steps on a sequence of length n. For the maximal possible value n=200,000 = 2*105, the number of steps is 40,000,000,000 = 4*1010. This is too much. Recall that modern machines can perform roughly 109 basic operations per second
  • 17. Analysis and Design of Algorithms  Assume the following array 2 4 3 5 1
  • 18. Analysis and Design of Algorithms  Find maximum number1 2 4 3 5 1 max1
  • 19. Analysis and Design of Algorithms  Find maximum number2 but not maximum number1 2 4 3 5 1 max2 max1
  • 20. Analysis and Design of Algorithms  Find maximum number2 but not maximum number1 2 4 3 5 1 max2 max1 return max1*max2
  • 21. Analysis and Design of Algorithms  Efficient algorithm
  • 22. Analysis and Design of Algorithms  Efficient algorithm
  • 23. Analysis and Design of Algorithms  Time complexity O(n)
  • 24. Analysis and Design of Algorithms Fibonacci
  • 25. Analysis and Design of Algorithms 0,1,1,2,3,5,8,13,21,34, …
  • 26. Analysis and Design of Algorithms Definition: 𝐹𝑛 = 0 𝑛 = 0 1 𝑛 = 1 𝐹𝑛−2 + 𝐹𝑛−1 𝑛 > 1
  • 27. Analysis and Design of Algorithms Examples: 𝐹8 = 21 𝐹20 = 6765 𝐹50 = 12586269025 𝐹100 = 354224848179261915075
  • 28. Analysis and Design of Algorithms  Examples: 𝐹500 = 1394232245616978801397243828 7040728395007025658769730726 4108962948325571622863290691 557658876222521294125
  • 29. Analysis and Design of Algorithms  Naive algorithm
  • 30. Analysis and Design of Algorithms  Naive algorithm Very Long Time why????
  • 31. Analysis and Design of Algorithms
  • 32. Analysis and Design of Algorithms
  • 33. Analysis and Design of Algorithms F6 F5 F4 F3 F2 F1 F0 F0 F1 F0 F2 F1 F0 F0 F3 F2 F1 F0 F0 F1 F0 F4 F3 F2 F1 F0 F0 F1 F0 F2 F1 F0 F0
  • 34. Analysis and Design of Algorithms Fib algorithm is very slow because of recursion Time complexity = O(2n)
  • 35. Analysis and Design of Algorithms  Efficient algorithm 0 1 1 2 3 5 Create array then insert fibonacci
  • 36. Analysis and Design of Algorithms  Efficient algorithm
  • 37. Analysis and Design of Algorithms  Efficient algorithm short Time why????
  • 38. Analysis and Design of Algorithms Fib_Fast algorithm is fast because of loop + array Time complexity = O(n2)
  • 39. Analysis and Design of Algorithms  Efficient algorithm  Try Very long Time why????
  • 40. Analysis and Design of Algorithms Advanced algorithm No array Need two variable + Loop
  • 41. Analysis and Design of Algorithms  Advanced algorithm  Compute F6  a=0, b=1 0 1 a b
  • 42. Analysis and Design of Algorithms  Advanced algorithm  Compute F6  a=b, b=a+b 1 1 a b
  • 43. Analysis and Design of Algorithms  Advanced algorithm  Compute F6  a=b, b=a+b 1 2 a b
  • 44. Analysis and Design of Algorithms  Advanced algorithm  Compute F6  a=b, b=a+b 2 3 a b
  • 45. Analysis and Design of Algorithms  Advanced algorithm  Compute F6  a=b, b=a+b 3 5 a b
  • 46. Analysis and Design of Algorithms  Advanced algorithm  Compute F6  a=b, b=a+b 5 8 a b
  • 47. Analysis and Design of Algorithms  Advanced algorithm  Compute F6=8 5 8 a b
  • 48. Analysis and Design of Algorithms  Advanced algorithm
  • 49. Analysis and Design of Algorithms  Advanced algorithm Very short Time why????
  • 50. Analysis and Design of Algorithms Fib_Faster algorithm is faster because of loop + two variables Time complexity = O(n)
  • 51. Analysis and Design of Algorithms  Advanced algorithm  Try Short Time why????
  • 52. Analysis and Design of Algorithms Greatest Common Divisors
  • 53. Analysis and Design of Algorithms In mathematics, the greatest common divisor (gcd) of two or more integers, which are not all zero, is the largest positive integer that divides each of the integers.
  • 54. Analysis and Design of Algorithms Input Integers a,b >=0 Output gcd(a,b)
  • 55. Analysis and Design of Algorithms  What is the greatest common divisor of 54 and 24?  The divisors of 54 are: 1,2,3,6,9,18,27,54  Similarly, the divisors of 24 are: 1,2,3,4,6,8,12,24  The numbers that these two lists share in common are the common divisors of 54 and 24: 1,2,3,6  The greatest of these is 6. That is, the greatest common divisor of 54 and 24. gcd(54,24)=6
  • 56. Analysis and Design of Algorithms  Naive algorithm
  • 57. Analysis and Design of Algorithms
  • 58. Analysis and Design of Algorithms gcd algorithm is slow because of loop Time complexity = O(n) n depend on a,b
  • 59. Analysis and Design of Algorithms  Efficient algorithm
  • 60. Analysis and Design of Algorithms  Efficient algorithm
  • 61. Analysis and Design of Algorithms  Efficient algorithm gcd_fast((3918848, 1653264)) gcd_fast((1653264, 612320)) gcd_fast((612320, 428624)) gcd_fast((428624, 183696)) gcd_fast((183696, 61232)) return 61232
  • 62. Analysis and Design of Algorithms Efficient algorithm Take 5 steps to solve gcd_fast( ( 3918848, 1653264 ) ) Time complexity = O(log(n))  n depend on a,b
  • 63. Analysis and Design of Algorithms Naive algorithm is too slow. The Efficient algorithm is much better. Finding the correct algorithm requires knowing something interesting about the problem.
  • 64. Analysis and Design of Algorithms facebook.com/mloey [email protected] twitter.com/mloey linkedin.com/in/mloey [email protected] mloey.github.io
  • 65. Analysis and Design of Algorithms www.YourCompany.com © 2020 Companyname PowerPoint Business Theme. All Rights Reserved. THANKS FOR YOUR TIME