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

Recommend


More recommend