Download presentation

Presentation is loading. Please wait.

Published byJalen Arrasmith Modified about 1 year ago

1

2
O: order of magnitude Look at the loops and to see whether the loops are nested. ◦ One single loop: O(n) ◦ A nested loop: O(n 2 ) ◦ A nested loop in a loop: O(n 3 )

3
for (int i=0; i

4
T(n) = n 2 + 5n + 25 Or T(n) = O(f(n)) These exists two constants, n0 and c (>0) and a function f(n) such that all n>n0, cf(n) T(n). Translate as: If n gets sufficiently large, there is some constants c for which processing time will always be less than or equal to cf(n). cf(n) is an upper bound on the performance.

5
The growth rate of f(n) will be determined by the growth rate of the fastest growing term It’s safe to ignore all constants and drop the lower order terms when determining the Big O for an algorithm

6
for (int i=0; i< n-1; i++) { for (int j=i+1; j

7

8
for (i=0; i< x.length; i *=2) { // print out i } -The loop body will execute k-1 times with i: 1,2,4,8,16… until 2 k > x.length -2 k-1 <= x.length < 2 k -K-1 <= log 2 (x.length) < k -So this loop has O(log 2 n)

9
1. for (int i=0; i

10
3. for (int i=0; i

11
for (int i=1; i<=n; i++) for (int j=1; j<=n; j++) for (int k=n; k>=1 ; k--) { Int sum = i+j+k; }

12
If T(n) is the form of a polynomial of degree d (d is the highest exponent), then it is O(n d ). O(1) represents a constant growth rate. This value doesn’t change with the number of inputs. Any finite number of O(1) steps is still O(1)

13
public static boolean areUnique(int[] x) { for(int i=0; i< x.length; i++) { for (int j=0; j

14
Big OName O(1)Constant O(log n)Logarithmic O(n)Linear O(n log n)Log-linear O(n 2 )Quadratic O(n 3 )Cubic O(2 n )Exponential O(n!)Factorial

15
15

Similar presentations

© 2017 SlidePlayer.com Inc.

All rights reserved.

Ads by Google