Professional Documents
Culture Documents
Asymptotic Analysis
Exponential
Growth Rate
Growth Rate of Diferent Functions
300 250
Function Value
lg n n lg n n square n cube 2 raise to power n
Growth Rates
n 0 1 2 4 8 16 32 64 128 256 512 1024 2048 lgn #NUM! 0 1 2 3 4 5 6 7 8 9 10 11 nlgn #NUM! 0 2 8 24 64 160 384 896 2048 4608 10240 22528 n2 0 1 4 16 64 256 1024 4096 16384 65536 262144 1048576 4194304 n3 0 1 8 64 512 4096 32768 262144 2097152 16777216 1.34E+08 1.07E+09 8.59E+09 2n 1 2 4 16 256 65536 4.29E+09 1.84E+19 3.4E+38 1.16E+77 1.3E+154
Constant Factors
The growth rate is not affected by
constant factors or lower-order terms
Examples
102n + 105 is a linear function 105n2 + 108n is a quadratic function
Time Complexities
Time complexity depends on
Input size Basic operation
Complexity T(n)=O(n)
Basic operation comparison of array elements Repeated how many number of times?? Complexity T(n)=n(n-1)/2=O(n^2)
Input size: number of elements in the array i.e. n Basic operation :comparison of key with array elements Best case: first element is the required key
Sequential Search
Input size: number of elements in the array i.e. n Basic operation :comparison of key with array elements worst case: last element is the required key or key is not present in array at all Complexity :w(n)=O(n)
Input size: number of elements in the array i.e. n Basic operation :comparison of key with array elements
Average case: probability of successful search is p(0<=p<=1) Probability of each element is p/n multiplied with number of comparisons ie p/n*i A(n)=[1.p/n+2.p/n+..n.p/n]+n.(1-p) p/n(1+2+3++n)+n.(1-p) P(n+1)/2 +n(1-p)
Asymptotic Notations
Order Notation
There may be a situation, e.g. g(n) f(n) Tt
n0
Or
g(n) is an asymptotic upper bound on f(n). f(n) = O(g(n)) iff there exist two positive constants c and n0 such that f(n) <= cg(n) for all n >= n0
Big-Oh Notation
Given functions f(n) and g(n), we say that f(n) is O(g(n)) if there are positive constants c and n0 such that
f(n) cg(n) for n n0 Example: 2n + 10 is O(n)
2n + 10 cn Pick c = 3 and n0 = 10
10,000
1,000
3n
2n+10
100
10
1 1 10 100 1,000
Yes No Yes
No Yes Yes
Big-Oh Example
Example: the function n2 is not O(n)
cn nc The above inequality cannot be satisfied since c must be a constant n2
1,000,000
n^2
100,000
100n
10,000
10n
1,000
100
10
1 1 10 100 1,000
3n3 + 20n2 + 5
3n3 + 20n2 + 5 is O(n3) need c > 0 and n0 1 such that 3n3 + 20n2 + 5 cn3 for n n0 this is true for c = 28 and n0 = 1
Big-Oh Rules
If is f(n) a polynomial of degree d, then f(n) is O(nd), i.e.,
1. Drop lower-order terms 2. Drop constant factors
Order Notation
Asymptotic Lower Bound: f(n) = (g(n)),
iff there exit positive constants c and n0 such that f(n) >= cg(n) for all n >= n0
f(n)
g(n)
n0
Big-Omega Notation
Given functions f(n) and g(n), we say that f(n) is (g(n)) if there are positive constants c and n0 such that
f(n) <=cg(n) for n n0 Example: 2n ^2+ 10 is (n)
2n^2 + 10 >=cn (2n^2+10/n)>=c 2n+10/n>=c Pick c = 1 and n0 = 1
Order Notation
Asymptotically Tight Bound: f(n) = (g(n)),
iff there exit positive constants c1 and c2 and n0 such that c1 g(n) <= f(n) <= c2g(n) for all n >= n0
c2g(n) f(n) c1g(n)
n0
This means that the best and worst case requires the same amount of time to within a constant factor.
Relatives of Big-Oh
little-oh ? little-omega ?
Small o Notation
For every c and n if f(n) is always less than g(n) then f(n) belongs to o(g(n)).