Your SlideShare is downloading.
×

×

Saving this for later?
Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.

Text the download link to your phone

Standard text messaging rates apply

Like this presentation? Why not share!

- Asymptotic notations by Ehtisham Ali 25002 views
- Time and space complexity by Ankit Katiyar 29611 views
- Big-Oh Notation by J. Caleb Wherry 2993 views
- how to calclute time complexity of ... by Sajid Marwat 1366 views
- Asymptotic Notation and Data Struct... by Amrinder Arora 923 views
- ADA complete notes by Vinay Kumar C 13493 views
- Asymptotic Notations by Rishabh Soni 954 views
- Complexity of Algorithm by Muhammad Muzammal 26860 views
- Design and Analysis of Algorithms by Arvind Krishnaa 8994 views
- DESIGN AND ANALYSIS OF ALGORITHMS by Gayathri Gaayu 969 views
- 19. Algorithms Complexity and Effic... by Intro C# Book 74976 views
- Design and Analysis of Algorithms by Swapnil Agrawal 1298 views

10,786

Published on

No Downloads

Total Views

10,786

On Slideshare

0

From Embeds

0

Number of Embeds

0

Shares

0

Downloads

431

Comments

0

Likes

3

No embeds

No notes for slide

- 1. Asymptotic Notations Nikhil Sharma BE/8034/09
- 2. Introduction In mathematics, computer science, and related fields, big O notation describes the limiting behavior of a function when the argument tends towards a particular value or infinity, usually in terms of simpler functions. Big O notation allows its users to simplify functions in order to concentrate on their growth rates: different functions with the same growth rate may be represented using the same O notation. The time complexity of an algorithm quantifies the amount of time taken by an algorithm to run as a function of the size of the input to the problem. When it is expressed using big O notation, the time complexity is said to be described asymptotically, i.e., as the input size goes to infinity.
- 3. Asymptotic Complexity Running time of an algorithm as a function of input size n for large n. Expressed using only the highest-order term in the expression for the exact running time. ◦ Instead of exact running time, say (n2). Describes behavior of function in the limit. Written using Asymptotic Notation. The notations describe different rate-of-growth relations between the defining function and the defined set of functions.
- 4. O-notationFor function g(n), we defineO(g(n)), big-O of n, as the set:O(g(n)) = {f(n) : positive constants c and n0, suchthat n n0,we have 0 f(n) cg(n) }Intuitively: Set of all functionswhose rate of growth is the same asor lower than that of g(n).g(n) is an asymptotic upper bound for f(n). f(n) = (g(n)) f(n) = O(g(n)). (g(n)) O(g(n)).
- 5. -notationFor function g(n), we define (g(n)), big-Omega of n, as the set: (g(n)) = {f(n) : positive constants c and n0, suchthat n n0,we have 0 cg(n) f(n)}Intuitively: Set of all functionswhose rate of growth is the same asor higher than that of g(n).g(n) is an asymptotic lower bound for f(n).f(n) = (g(n)) f(n) = (g(n)). (g(n)) (g(n)).
- 6. -notationFor function g(n), we define (g(n)), big-Theta of n, as the set: (g(n)) = {f(n) : positive constants c1, c2, andn0, such that n n 0,we have 0 c1g(n) f(n) c2g(n)}Intuitively: Set of all functions thathave the same rate of growth as g(n).g(n) is an asymptotically tight bound for f(n).
- 7. Definitions Upper Bound Notation: ◦ f(n) is O(g(n)) if there exist positive constants c and n0 such that f(n) c g(n) for all n n0 ◦ Formally, O(g(n)) = { f(n): positive constants c and n0 such that f(n) c g(n) n n0 ◦ Big O fact: A polynomial of degree k is O(nk) Asymptotic lower bound: ◦ f(n) is (g(n)) if positive constants c and n0 such that 0 c g(n) f(n) n n0 Asymptotic tight bound: ◦ f(n) is (g(n)) if positive constants c1, c2, and n0 such that c1 g(n) f(n) c2 g(n) n n0 ◦ f(n) = (g(n)) if and only if f(n) = O(g(n)) AND f(n) = (g(n))
- 8. Relations Between , O,
- 9. o-notationFor a given function g(n), the set little-o:o(g(n)) = {f(n): c > 0, n0 > 0 such that n n0, we have 0 f(n) < cg(n)}. f(n) becomes insignificant relative to g(n) as n approaches infinity: lim [f(n) / g(n)] = 0 ng(n) is an upper bound for f(n) that is not asymptotically tight.
- 10. -notationFor a given function g(n), the set little-omega: (g(n)) = {f(n): c > 0, n0 > 0 such that n n0, we have 0 cg(n) < f(n)}.f(n) becomes arbitrarily large relative to g(n) as n approaches infinity: lim [f(n) / g(n)] = . ng(n) is a lower bound for f(n) that is not asymptotically tight.
- 11. Comparison of Functions f g a b f (n) = O(g(n)) a b f (n) = (g(n)) a b f (n) = (g(n)) a = b f (n) = o(g(n)) a < b f (n) = (g(n)) a > b
- 12. Review:Other Asymptotic Notations Intuitively, we can simplify the above by: ■ o() is like < ■ () is like > ■ () is like = ■ O() is like ■ () is like
- 13. Exercise Express functions in A in asymptotic notation using functions in B. A B 5n2 + 100n 3n2 + 2 A (B) A (n2), n2 (B) A (B) log3(n2) log2(n3) A (B) logba = logca / logcb; A = 2lgn / lg3, B = 3lgn, A/B =2/(3lg3) nlg4 3lg n A (B) alog b = blog a; B =3lg n=nlg 3; A/B =nlg(4/3) as n lg2n n1/2 A (B) lim ( lga n / nb ) = 0 (here a = 2 and b = 1/2) A (B) n
- 14. Common growth ratesTime complexity ExampleO(1) constant Adding to the front of a linked listO(log N) log Finding an entry in a sorted arrayO(N) linear Finding an entry in an unsorted arrayO(N log N) n-log-n Sorting n items by ‘divide-and-conquer’O(N2) quadratic Shortest path between two nodes in a graphO(N3) cubic Simultaneous linear equationsO(2N) exponential The Towers of Hanoi problem
- 15. Growth rates O(N2) O(Nlog N) For a short time N2 is better than NlogN Number of Inputs
- 16. Running Times “Running time is O(f(n))” Worst case is O(f(n)) O(f(n)) bound on the worst-case running time O(f(n)) bound on the running time of every input. (f(n)) bound on the worst-case running time (f(n)) bound on the running time of every input. “Running time is (f(n))” Best case is (f(n)) Can still say “Worst-case running time is (f(n))” ◦ Means worst-case running time is given by some unspecified function g(n) (f(n)).
- 17. Time Complexity Vs SpaceComplexity Achieving both is difficult and we have to make use of the best case feasible There is always a trade off between the space and time complexity If memory available is large then we need not compensate on time complexity If speed of execution is not main concern and the memory available is less then we can’t compensate on space complexity.
- 18. The End

Be the first to comment