26
CSE 326: Data Structures Lecture #3 Asymptotic Analysis Steve Wolfman Winter Quarter 2000

CSE 326: Data Structures Lecture #3 Asymptotic Analysis Steve Wolfman Winter Quarter 2000

Embed Size (px)

DESCRIPTION

Silicon Downs Post #1 n 3 + 2n 2 n 0.1 n + 100n 0.1 5n 5 n n / log n mn 3 Post #2 100n log n 2n + 10 log n n! 1000n 15 3n 7 + 7n 2 m n Winner O(n 2 ) O(log n) TIE O(n) O(n 5 ) O(n 15 ) O(n 6 ) IT DEPENDS

Citation preview

Page 1: CSE 326: Data Structures Lecture #3 Asymptotic Analysis Steve Wolfman Winter Quarter 2000

CSE 326: Data StructuresLecture #3

Asymptotic Analysis

Steve WolfmanWinter Quarter 2000

Page 2: CSE 326: Data Structures Lecture #3 Asymptotic Analysis Steve Wolfman Winter Quarter 2000

Today’s Outline

• Silicon Downs• Asymptotic Analysis• Return Quiz

Page 3: CSE 326: Data Structures Lecture #3 Asymptotic Analysis Steve Wolfman Winter Quarter 2000

Silicon DownsPost #1

n3 + 2n2

n0.1

n + 100n0.1

5n5

n-152n/100

82log n

mn3

Post #2

100n2 + 1000

log n

2n + 10 log n

n!

1000n15

3n7 + 7n

2mn

Winner

O(n2)

O(log n)

TIE O(n)

O(n5)

O(n15)

O(n6)

IT DEPENDS

Page 4: CSE 326: Data Structures Lecture #3 Asymptotic Analysis Steve Wolfman Winter Quarter 2000

Race In3 + 2n2 100n2 + 1000vs.

Page 5: CSE 326: Data Structures Lecture #3 Asymptotic Analysis Steve Wolfman Winter Quarter 2000

Race IIn0.1 log nvs.

Page 6: CSE 326: Data Structures Lecture #3 Asymptotic Analysis Steve Wolfman Winter Quarter 2000

Race IIIn + 100n0.1 2n + 10 log nvs.

Page 7: CSE 326: Data Structures Lecture #3 Asymptotic Analysis Steve Wolfman Winter Quarter 2000

Race IV5n5 n!vs.

Page 8: CSE 326: Data Structures Lecture #3 Asymptotic Analysis Steve Wolfman Winter Quarter 2000

Race Vn-152n/100 1000n15vs.

Page 9: CSE 326: Data Structures Lecture #3 Asymptotic Analysis Steve Wolfman Winter Quarter 2000

Race VI82log(n) 3n7 + 7nvs.

Page 10: CSE 326: Data Structures Lecture #3 Asymptotic Analysis Steve Wolfman Winter Quarter 2000

FBI Finds Silicon Downs Fixed• The fix sheet (typical growth rates in order)

– constant: O(1)– logarithmic: O(log n) (logkn, log n2 O(log n))– poly-log: O(logk n)– linear: O(n)– log-linear: O(n log n)– superlinear: O(n1+c) (c is a constant > 0)– quadratic: O(n2)– cubic: O(n3)– polynomial: O(nk) (k is a constant)– exponential: O(cn) (c is a constant > 1)

Page 11: CSE 326: Data Structures Lecture #3 Asymptotic Analysis Steve Wolfman Winter Quarter 2000

TerminologyGiven an algorithm whose running time is T(n)

– T(n) O(f(n)) if there are constants c and n0 such that T(n) c f(n) for all n n0

• 1, log n, n, 100n O(n)

– T(n) (f(n)) if there are constants c and n0 such that T(n) c f(n) for all n n0

• n, n2, 100 . 2n, n3 log n (n)

– T(n) (f(n)) if T(n) O(f(n)) and T(n) (f(n)) • n, 2n, 100n, 0.01 n + log n (n)

– T(n) o(f(n)) if T(n) O(f(n)) and T(n) (f(n))• 1, log n, n0.99 o(n)

– T(n) (f(n)) if T(n) O(f(n)) and T(n) (f(n))• n1.01, n2, 100 . 2n, n3 log n (n)

Page 12: CSE 326: Data Structures Lecture #3 Asymptotic Analysis Steve Wolfman Winter Quarter 2000

Types of analysisOrthogonal axes

– bound flavor• upper bound (O, o)• lower bound (, )• asymptotically tight ()

– analysis case• worst case (adversary)• average case• best case• “common” case

– analysis quality• loose bound (any true analysis)• tight bound (no better bound which is asymptotically different)

Page 13: CSE 326: Data Structures Lecture #3 Asymptotic Analysis Steve Wolfman Winter Quarter 2000

Analyzing Code

• C++ operations - constant time• consecutive stmts - sum of times• conditionals - sum of branches, condition• loops - sum of iterations• function calls - cost of function body

Above all, use your head!

Page 14: CSE 326: Data Structures Lecture #3 Asymptotic Analysis Steve Wolfman Winter Quarter 2000

More Examples Than You Can Shake a Stick At (#1)

for i = 1 to n do for j = 1 to n do sum = sum + 1

Page 15: CSE 326: Data Structures Lecture #3 Asymptotic Analysis Steve Wolfman Winter Quarter 2000

METYCSSA (#2)for i = 1 to n do for j = i to n do sum = sum + 1

Page 16: CSE 326: Data Structures Lecture #3 Asymptotic Analysis Steve Wolfman Winter Quarter 2000

METYCSSA (#3)

• Conditionalif C then S1 else S2

• Loopswhile C do S

Page 17: CSE 326: Data Structures Lecture #3 Asymptotic Analysis Steve Wolfman Winter Quarter 2000

METYCSSA (#4)

• Recursion• Almost always yields a recurrence• Recursive max

T(0) <= bT(n) <= c + T(n - 1) if n > 0

• AnalysisT(n) <= c + c + T(n - 2) (by substitution)T(n) <= c + c + c + T(n - 3) (by substitution, again)T(n) <= kc + T(n - k) (extrapolating 0 < k n)T(n) <= nc + T(0) = nc + b (for k = n)

• T(n)

Page 18: CSE 326: Data Structures Lecture #3 Asymptotic Analysis Steve Wolfman Winter Quarter 2000

METYCSSA (#5): Mergesort• Mergesort algorithm

– split list in half, sort first half, sort second half, merge together• T(1) <= b

T(n) <= 2T(n/2) + cn if n > 1

• AnalysisT(n) <= 2T(n/2) + cn <= 2(2T(n/4) + c(n/2)) + cn = 4T(n/4) + cn + cn <= 4(2T(n/8) + c(n/4)) + cn + cn = 8T(n/8) + cn + cn + cn <= 2kT(n/2k) + kcn (extrapolating 1 < k n) <= nT(1) + cn log n(for 2k = n or k = log n)

• T(n)

Page 19: CSE 326: Data Structures Lecture #3 Asymptotic Analysis Steve Wolfman Winter Quarter 2000

METYCSSA (#6): Fibonacci

• Recursive Fibonacci:int Fib(n) if (n == 0 or n == 1) return 1

else return Fib(n - 1) + Fib(n - 2)

• Lower bound analysis• T(0), T(1) >= b

T(n) <= T(n - 1) + T(n - 2) + c if n > 1

• Analysislet be (1 + 5)/2 which satisfies 2 = + 1show by induction on n that T(n) >= bn - 1

Page 20: CSE 326: Data Structures Lecture #3 Asymptotic Analysis Steve Wolfman Winter Quarter 2000

Example #6 continued

• Basis: T(0) b > b-1 and T(1) b = b0• Inductive step: Assume T(m) bm - 1 for all m < n

T(n) T(n - 1) + T(n - 2) + c bn-2 + bn-3 + c bn-3( + 1) + c = bn-32 + c bn-1

• T(n) • Why? Same recursive call is made numerous times.

Page 21: CSE 326: Data Structures Lecture #3 Asymptotic Analysis Steve Wolfman Winter Quarter 2000

Example #6: Learning from Analysis

• To avoid recursive calls– store all basis values in a table– each time you calculate an answer, store it in the table– before performing any calculation for a value n

• check if a valid answer for n is in the table• if so, return it

• This strategy is called “memoization” and is closely related to dynamic programming

• How much time does this version take? Ask Zasha about me!

Page 22: CSE 326: Data Structures Lecture #3 Asymptotic Analysis Steve Wolfman Winter Quarter 2000

Final Example (#7):Longest Common Subsequence

• Problem: given two strings (m and n), find the longest sequence of characters which appears in order in both strings– lots of applications, DNA sequencing, blah, blah, blah

• Example:– “search me” and “insane method” = “same”

Page 23: CSE 326: Data Structures Lecture #3 Asymptotic Analysis Steve Wolfman Winter Quarter 2000

Asymptotic Analysis Summary

• Determine what characterizes a problem’s size• Express how much resources (time, memory, etc.)

an algorithm requires as a function of input size using O(•), (•), (•)– worst case– best case– average case– common case– overall

Page 24: CSE 326: Data Structures Lecture #3 Asymptotic Analysis Steve Wolfman Winter Quarter 2000

Remind Darth Wolfman to Hand Back the Quizzes

• Well, what are you waiting for?

Page 25: CSE 326: Data Structures Lecture #3 Asymptotic Analysis Steve Wolfman Winter Quarter 2000

To Do

• Write up homework (for Wed. beginning of class)• Finalize Project I teams• Finish Project I (for Friday 10PM)• Read chapter 6 in the book• Keep thinking about whether you like this

homework format

Page 26: CSE 326: Data Structures Lecture #3 Asymptotic Analysis Steve Wolfman Winter Quarter 2000

Coming Up

• Priority Qs • Self-balancing trees• First homework assignment due (January 12th)• First project due (January 14th)• A day off (January 17th)!