compsci 220
play

COMPSCI 220 Lectures 33-34: Course Review (additional slides only) - PowerPoint PPT Presentation

COMPSCI 220 Lectures 33-34: Course Review (additional slides only) Algorithm analysis Data sorting Data searching (Di)graphs Graph algorithms Lecturer: Georgy Gimelfarb 1 / 19 Contents of the Review Lectures Running time: Examples


  1. COMPSCI 220 Lectures 33-34: Course Review (additional slides only) Algorithm analysis Data sorting Data searching (Di)graphs Graph algorithms Lecturer: Georgy Gimel’farb 1 / 19

  2. Contents of the Review Lectures • Running time: Examples 1.5, 1.6, 1.2.1 from Textbook. • Solving recurrences: Examples 1.29 – 1.32 from Textbook. • Sorting: inversions; insertion, merge-, quick-, heap sort; heaps. • Searching: BST, self-balanced search trees. • Digraphs: representations; sub(di)graphs, classes of traversal arcs. • DFS / BFS / PFS: examples; determining ancestors of a tree. • Cycle detection; girth; topological sorting – examples. • Graph connectivity; strong connected components. • Maximum matchings; augmented paths – examples. • Weighed (di)graphs: representations; diameter; radius; excentricity. • SSSP: Dijkstra’s and Bellman-Ford examples. • APSP: Floyd’s examples. • MST: Prim’s and Kruskal’s examples. 2 / 19

  3. Running Time of a Pseudocode Fragment The running time for this fragment is Θ( f ( n )) . What is f ( n ) ? j ← 1 for i ← 1 step i ← i + 1 while i ≤ n 2 do if i = j then j ← j · n for k ← 1 step k ← k + 1 while k ≤ n do // ...constant number C of elementary operations end for else for k ← 1 step k ← k + n while k ≤ n 3 + 1 do // ...constant number C of elementary operations end for end if end for A. n 4 ; B. n 3 log n ; C. n 3 ; D. n 2 log n ; E. n 2 3 / 19

  4. Running Time of a Pseudocode Fragment The running time for this fragment is Θ( f ( n )) . What is f ( n ) ? j ← 1 for i ← 1 step i ← i + 1 while i ≤ n 2 do n 2 steps if i = j then j ← j · n for k ← 1 step k ← k + 1 while k ≤ n do n steps // ...constant number C of elementary operations end for else for k ← 1 step k ← k + n while k ≤ n 3 + 1 do n 2 steps // ...constant number C of elementary operations end for end if end for A. n 4 ; B. n 3 log n ; C. n 3 ; D. n 2 log n ; E. n 2 3 / 19

  5. Running Time of a Pseudocode Fragment The running time for this fragment is Θ( f ( n )) . What is f ( n ) ? j ← 1 for i ← 1 step i ← i + 1 while i ≤ n 2 do n 2 steps if i = j then � i = j only when j = 1 , then n , then n 2 j ← j · n for k ← 1 step k ← k + 1 while k ≤ n do n steps // ...constant number C of elementary operations end for else for k ← 1 step k ← k + n while k ≤ n 3 + 1 do n 2 steps // ...constant number C of elementary operations end for end if end for A. n 4 ; B. n 3 log n ; C. n 3 ; D. n 2 log n ; E. n 2 3 / 19

  6. Running Time of a Pseudocode Fragment The running time for this fragment is Θ( f ( n )) . What is f ( n ) ? j ← 1 for i ← 1 step i ← i + 1 while i ≤ n 2 do n 2 steps if i = j then � i = j only when j = 1 , then n , then n 2 j ← j · n for k ← 1 step k ← k + 1 while k ≤ n do n steps // ...constant number C of elementary operations end for else for k ← 1 step k ← k + n while k ≤ n 3 + 1 do n 2 steps // ...constant number C of elementary operations end for 1 For i = 1 , n, n 2 → Cn (the inner upper for -loop). end if n 2 − 3 steps of i → Cn 2 (the inner bottom for -loop). 2 end for 3 Cn +( n 2 − 3) · Cn 2 = C (3 n − 3 n 2 + n 4 ) → f ( n ) = n 4 3 A. n 4 ; B. n 3 log n ; C. n 3 ; D. n 2 log n ; E. n 2 3 / 19

  7. Running Time of a Pseudocode Fragment The running time for this fragment is Θ( f ( n )) . What is f ( n ) ? j ← 1 for i ← 1 step i ← i + 1 while i ≤ n 2 do n 2 steps if i = j then � i = j only when j = 1 , then n , then n 2 j ← j · n for k ← 1 step k ← k + 1 while k ≤ n do n steps // ...constant number C of elementary operations end for else for k ← 1 step k ← k + n while k ≤ n 3 + 1 do n 2 steps // ...constant number C of elementary operations end for 1 For i = 1 , n, n 2 → Cn (the inner upper for -loop). end if n 2 − 3 steps of i → Cn 2 (the inner bottom for -loop). 2 end for 3 Cn +( n 2 − 3) · Cn 2 = C (3 n − 3 n 2 + n 4 ) → f ( n ) = n 4 3 A. n 4 ; B. n 3 log n ; C. n 3 ; D. n 2 log n ; E. n 2 3 / 19

  8. Big-Oh / Omega / Theta Definitions • Let f ( n ) and g ( n ) be non-negative-valued functions, defined on non-negative integers, n . • Let c and n 0 be a positive real constant and a positive integer, respectively. If and only if there exist c and n 0 such that g ( n ) ≤ cf ( n ) for all n > n 0 then g ( n ) is O( f ( n )) ( g ( n ) is Big Oh of f ( n ) ) g ( n ) ≥ cf ( n ) for all n > n 0 then g ( n ) is Ω( f ( n )) ( g ( n ) is Big Omega of f ( n ) • Let c 1 , c 2 , and n 0 be two positive real constants and a positive integer, respectively. If and only if there exist c 1 , c 2 and n 0 such that c 1 f ( n ) ≤ g ( n ) ≤ c 2 f ( n ) for all n > n 0 then g ( n ) is Θ( f ( n )) ( g ( n ) is Big Theta of f ( n ) ) . 4 / 19

  9. Big-Oh / Omega / Theta Properties • Scaling (for X = O , Ω , Θ ): � � cf ( n ) is X f ( n ) for all constant factors c > 0 . • Transitivity (for X = O , Ω , Θ ): If h is X( g ) and g is X( f ) , then h is X( f ) . • Rule of sums (for X = O , Ω , Θ ): If g 1 ∈ X( f 1 ) and g 2 ∈ X( f 2 ) , then g 1 + g 2 ∈ X(max { f 1 , f 2 } ) . • Rule of products (for X = O , Ω , Θ ): If g 1 ∈ X( f 1 ) and g 2 ∈ X( f 2 ) , then g 1 g 2 ∈ X( f 1 f 2 ) . • Limit rule: f ( n ) Suppose the ratio’s limit lim g ( n ) = L exists (may be infinite, ∞ ). n →∞  if L = 0 then f ∈ O( g )  if 0 < L < ∞ then f ∈ Θ( g ) Then  if L = ∞ then f ∈ Ω( g ) 5 / 19

  10. Solving a Recurrence If the solution of the recurrence T ( n ) = T ( n − 1) + log 2 n ; T (1) = 0 , is in Θ( f ( n )) , what is f ( n ) ? Hint: The factorial n ! ≈ n n e − n √ 2 πn where e = 2 . 718 . . . and π = 3 . 1415 . . . are constants. A. 2 n ; B. log n ; C. n ; D. n log n ; E. n 2 Telescoping: T ( n ) = T ( n − 1) + log 2 n T ( n ) − T ( n − 1) = log 2 n     T ( n − 1) = T ( n − 2) + log 2 ( n − 1) T ( n − 1) − T ( n − 2) = log 2 ( n − 1)       . . . . . . . . . . . . . . . . . . . . . . . . → T (3) = T (2) + log 2 3 T (3) − T (2) = log 2 3         T (2) = T (1) + log 2 2 T (2) − T (1) = log 2 2 T ( n ) = 0 + log 2 2 + log 2 3 + . . . + log 2 ( n − 1) + log 2 n = log 2 ( n !) n log 2 n − n log 2 e + 1 = 2 (log 2 n + log 2 π + 1) , i.e., T ( n ) Θ( n log n ) ∈ 6 / 19

  11. Solving a Recurrence If the solution of the recurrence T ( n ) = T ( n − 1) + log 2 n ; T (1) = 0 , is in Θ( f ( n )) , what is f ( n ) ? Hint: The factorial n ! ≈ n n e − n √ 2 πn where e = 2 . 718 . . . and π = 3 . 1415 . . . are constants. A. 2 n ; B. log n ; C. n ; D. n log n ; E. n 2 Telescoping: T ( n ) = T ( n − 1) + log 2 n T ( n ) − T ( n − 1) = log 2 n     T ( n − 1) = T ( n − 2) + log 2 ( n − 1) T ( n − 1) − T ( n − 2) = log 2 ( n − 1)       . . . . . . . . . . . . . . . . . . . . . . . . → T (3) = T (2) + log 2 3 T (3) − T (2) = log 2 3         T (2) = T (1) + log 2 2 T (2) − T (1) = log 2 2 T ( n ) = 0 + log 2 2 + log 2 3 + . . . + log 2 ( n − 1) + log 2 n = log 2 ( n !) n log 2 n − n log 2 e + 1 = 2 (log 2 n + log 2 π + 1) , i.e., T ( n ) Θ( n log n ) ∈ 6 / 19

  12. Solving a Recurrence If the solution of the recurrence T ( n ) = T ( n − 1) + log 2 n ; T (1) = 0 , is in Θ( f ( n )) , what is f ( n ) ? Hint: The factorial n ! ≈ n n e − n √ 2 πn where e = 2 . 718 . . . and π = 3 . 1415 . . . are constants. A. 2 n ; B. log n ; C. n ; D. n log n ; E. n 2 Telescoping: T ( n ) = T ( n − 1) + log 2 n T ( n ) − T ( n − 1) = log 2 n     T ( n − 1) = T ( n − 2) + log 2 ( n − 1) T ( n − 1) − T ( n − 2) = log 2 ( n − 1)       . . . . . . . . . . . . . . . . . . . . . . . . → T (3) = T (2) + log 2 3 T (3) − T (2) = log 2 3         T (2) = T (1) + log 2 2 T (2) − T (1) = log 2 2 Summing left and right columns: T ( n ) − T (1) = log 2 n + . . . + log 2 2 T ( n ) = 0 + log 2 2 + log 2 3 + . . . + log 2 ( n − 1) + log 2 n = log 2 ( n !) n log 2 n − n log 2 e + 1 = 2 (log 2 n + log 2 π + 1) , i.e., T ( n ) Θ( n log n ) ∈ 6 / 19

  13. Solving a Recurrence If the solution of the recurrence T ( n ) = T ( n − 1) + log 2 n ; T (1) = 0 , is in Θ( f ( n )) , what is f ( n ) ? Hint: The factorial n ! ≈ n n e − n √ 2 πn where e = 2 . 718 . . . and π = 3 . 1415 . . . are constants. A. 2 n ; B. log n ; C. n ; D. n log n ; E. n 2 Telescoping: T ( n ) = T ( n − 1) + log 2 n T ( n ) − T ( n − 1) = log 2 n     T ( n − 1) = T ( n − 2) + log 2 ( n − 1) T ( n − 1) − T ( n − 2) = log 2 ( n − 1)       . . . . . . . . . . . . . . . . . . . . . . . . → T (3) = T (2) + log 2 3 T (3) − T (2) = log 2 3         T (2) = T (1) + log 2 2 T (2) − T (1) = log 2 2 Summing left and right columns: T ( n ) − T (1) = log 2 n + . . . + log 2 2 T ( n ) T ( n ) = = 0 + log 2 2 + log 2 3 + . . . + log 2 ( n − 1) + log 2 n = log 2 ( n !) 0 + log 2 2 + log 2 3 + . . . + log 2 ( n − 1) + log 2 n = log 2 ( n !) n log 2 n − n log 2 e + 1 n log 2 n − n log 2 e + 1 = = 2 (log 2 n + log 2 π + 1) , i.e., 2 (log 2 n + log 2 π + 1) , i.e., T ( n ) T ( n ) Θ( n log n ) Θ( n log n ) ∈ ∈ 6 / 19

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend