wavec022

divide and conquer

Jan 26th, 2021 (edited)
146
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.90 KB | None | 0 0
  1. Divide And Conquer
  2.  
  3. fib(n) = fib(n-1) + fib(n+2)
  4.  
  5. Merge Sort
  6. 3,5,2,7,1,4,0,6
  7. / \
  8. 3,5,2,7 1,4,0,6
  9. | |
  10. 2,3,5,7 0,1,4,6
  11. \ /
  12. 0,1,2,3,4,5,6,7
  13.  
  14. T(n) = 2*T(n/2) + n ==> O(n log n)
  15.  
  16. Decrease and Conquer vs Divide and Conquer
  17.  
  18. how much smaller
  19. # subproblems n-1 n/2
  20. 1 decrease and conquer
  21. 2+ divide and conquer
  22.  
  23. =====
  24.  
  25. def sum(a: Array[Int]): Int = {
  26. def s(lo: Int, hi: Int): Int = { // hi is inclusive
  27. // if(hi < lo) 0
  28. //else
  29. if(lo == hi) a(lo)
  30. else {
  31. val mid = (lo+hi+1)/2
  32. s(lo, mid) + s(mid+1, hi)
  33. }
  34. }
  35. if(a.isEmpty) 0
  36. else s(0, a.length-1)
  37. }
  38.  
  39. T(n) = 2*T(n/2) + 1 ==> O(n)
Add Comment
Please, Sign In to add comment