Upload
borna
View
29
Download
0
Embed Size (px)
DESCRIPTION
Analysys & Complexity of Algorithms. Big Oh Notation. Complexity. Two kinds of complexity Space complexity Effects of data type choices on size of data Effects of amount of data (input and variables) Time Complexity Effects of choices of program design - PowerPoint PPT Presentation
Citation preview
Analysys & Complexity of Algorithms
Big Oh Notation
2
Complexity
• Two kinds of complexity– Space complexity
• Effects of data type choices on size of data• Effects of amount of data (input and variables)
– Time Complexity• Effects of choices of program design
• Given 2 algorithms, which is "the best"
3
Big Oh (or Big O)
• A measure of complexity related to "n" (problem size=amount of data) e.g.:– # of records to process– #of files– # of numbers or times through a loop
• This is asymptotic analysis– associates n, the problem size, with t, the processing
time required to solve the problem
4
Big O Examples• x=x+1;
– O(1) -> constant degradation• Binary Search of a SORTED set of n elements
– O(log n)• for (i=1;i<n;i++)
– O(n) -> linear degradation• selection sort, compare two 2D arrays, find duplicates in an
UNSORTED list– O(n2) -> quadratic degradation
• Generate all premutations of n symbols– O(an) -> 'a' is some constant independtent of 'n'
• O(l) < O(log n) < O(n) < O(n log n) < O(n2) < O(an)
5
3 cases
• Best case– minimum path lengths
• Average case– constant path length
• Worst case– maximum path length–most useful!! Leads to better design– answers question: will it be good enough
tomorrow??
6
Frequency Counting
• Examine a piece of code and predict the number of instructions to be executed
• e.g. predict how many times (max) each statement will run.
Inst # Code Freq count
1 for (int i=0; i< n ; i++) n+12 { printf ("%d",i); n3 p = p + i; n
} 3n+1
7
Order of magnitude• In the previous example:
– best case = average case = worst case – Example is based on iteration limit: n
• To convert Frequency Count to order of magnitude:– pick the most significant term if polynomial– discard constant terms (like the +1)– disregard coefficients (like the 3)– yields worst case path through algorithm
• Big O (represented as O(n))• O(n) for the previous example
8
Common growth rates
9
Big Oh - Formal Definition
• f(n)=O(g(n)),
• Thus, g(n) is an upper bound on f(n)• Note:
f(n) = O(g(n)) – f(n) has a complexity of g(n)"
this is NOT the same as O(g(n)) = f(n)
• The '=' is not the usual mathematical "=" operator (it is not reflexive)
• We will see more about this in chapter 6
iff ᴲ {c, n0 | f(n) <= c g(n) for all n >= n0}