Advanced Algorithm
Analysis
1
Today’s Lecture
Algorithm
Use of Algorithms
Algorithm Designing
Algorithm Analysis
Experimental proof of efficiency of an
Algorithm
Mathematical Approach
11/08/24 2
Algorithm
Problem Statement
Relationship b/w input and output
Algorithm
Procedure to achieve the relationship
Definition
A sequence of computational steps which
transform the input to output
Instance
The input needed to compute solution
Correct Algorithm
for every input it halts with correct output
11/08/24 Instructor: Muhammad Umair 3
Use of Algorithms
Human Genome Project
Internet
Electronic Commerce
Manufacturing & Commercial Setting
Communication Links (Graph)
Matrix Multiplication
Proof of equation
4
Algorithms Design
Design
DataStructure
Techniques
Hard Problems
5
Algorithms Analysis
Efficiency
Speed
Memory
Bench Marks
6
Running Time to Sort Array of 2000 Integers
Type of Computer Time (sec)
Home Computer 51.915
Desktop Computer 11.508
Minicomputer 2.382
Mainframe Computer 0.431
Supercomputer 0.087
7
Comparison
Array Size Home Desktop
Comp Comp
125 12.5 2.8
250 49.3 11.0
500 195.8 43.4
1000 780.3 172.9
2000 3114.9 690.5
8
Graphical Comparison
3000 f1(n) = 0.0007772 n2 + 0.00305 n + 0.001
f2(n) = 0.0001724 n2 + 0.00040 n + 0.100
f1(x)
2000
1000
f2(n)
125 250 500 1000 2000
9
Analysis of Results
f(n) = a n2 + b n + c
where a = 0.0001724, b = 0.0004 and c = 0.1
n f(n) a n2 % of n2
125 2.8 2.7 94.7
250 11.0 10.8 98.2
500 43.4 43.1 99.3
1000 172.9 172.4 99.7
2000 690.5 689.6 99.9
10
Complexity Classes
Adjective O-Notation
Classes
Constant O(1)
Logarithmic O(log n)
Linear O(n)
n log n O(n log n)
Quadratic O(n2)
Cubic O(n3)
Exponential O(2n)
Exponential O(10n)
11
Complexity Method Name
O(n2) Selection Sort, Insertion sort
O(n lg n) Quick Sort, Heap Sort, Merge Sort
O(n) Radix Sort
12
Running Time
n= n=102 n=104857
f(n) n = 2 n = 16 6
256 4
1 1(ms) 1(ms) 1(ms) 1(ms) 1(ms)
log2 n 1 4 8 10 20
n 2 16 256 1.02(Ms) 1.05(s)
nlog2 n 2 64 2.05(Ms) 10.2 21
n2 4 25.6 65.5 1.05(s) 1.8(wk)
4.1(Ms) 16.8(s) 17.9(m) 36559
n3 8
(Years)
2n 4 65.5 3.7*1063 5.7*10294 2.1*1031563
(Year)
(Yrs)
13
Insertion Sort
14
Insertion Sort
15
Insertion Sort
16
Insertion Sort
17
Selection Sort
Void Selection (Input Array A)
intMinPos, temp, i, j;
for(i = n-1; i > 0; i--)
MinPos = i;
for ( j = 0; j < i; j++)
If ( A[ j ] < A[ MinPos ]) MinPos = j;
Temp = A[ i ];
A[ i ] = A[ MinPos ];
A[ MinPos ] = temp;
18