randomized algorithms hash functions
play

Randomized Algorithms, Hash Functions Lecture A Tiefenbruck MWF - PowerPoint PPT Presentation

Randomized Algorithms, Hash Functions Lecture A Tiefenbruck MWF 9-9:50am Center 212 Lecture B Jones MWF 2-2:50pm Center 214 Lecture C Tiefenbruck MWF 11-11:50am Center 212 http://cseweb.ucsd.edu/classes/wi16/cse21-abc/ March 7, 2016


  1. Randomized Algorithms, Hash Functions Lecture A Tiefenbruck MWF 9-9:50am Center 212 Lecture B Jones MWF 2-2:50pm Center 214 Lecture C Tiefenbruck MWF 11-11:50am Center 212 http://cseweb.ucsd.edu/classes/wi16/cse21-abc/ March 7, 2016

  2. Selection Problem: WHAT Given list of distinct integers a 1 , a 2 , …, a n and integer i, 1 <= i <= n, find the i th smallest element in the array.

  3. Selection Problem: HOW Given list of distinct integers a 1 , a 2 , …, a n and integer i, 1 <= i <= n, find the i th smallest element in the array. What algorithm would you choose if i=1?

  4. Selection Problem: HOW Given list of distinct integers a 1 , a 2 , …, a n and integer i, 1 <= i <= n, find the i th smallest element in the array. What algorithm would you choose in general?

  5. Selection Problem: HOW Given list of distinct integers a 1 , a 2 , …, a n and integer i, 1 <= i <= n, find the i th smallest element in the array. What algorithm would you choose in general? Can sorting help? Algorithm: first sort list and then step through to find i th smallest. What's its runtime? A. B. C. D. E. None of the above

  6. Selection Problem: HOW Given list of distinct integers a 1 , a 2 , …, a n and integer i, 1 <= i <= n, find the i th smallest element in the array. What algorithm would you choose in general? Different strategy … Pick random list element called “pivot.” Partition list into those smaller than pivot, those bigger than pivot. Using i and size of partition sets, determine in which set to continue looking.

  7. Selection Problem: HOW Given list of distinct integers a 1 , a 2 , …, a n and integer i, 1 <= i <= n, find the i th smallest element in the array. Pick random list element called “pivot.” Partition list into those smaller than pivot, those bigger than pivot. Using i and size of partition sets, determine in which set to continue looking. ex. 17, 42, 3, 8, 19, 21, 2 i = 3

  8. Selection Problem: HOW Given list of distinct integers a 1 , a 2 , …, a n and integer i, 1 <= i <= n, find the i th smallest element in the array. Pick random list element called “pivot.” Partition list into those smaller than pivot, those bigger than pivot. Using i and size of partition sets, determine in which set to continue looking. ex. 17, 42, 3, 8, 19, 21, 2 i = 3 Random pivot: 17

  9. Selection Problem: HOW Given list of distinct integers a 1 , a 2 , …, a n and integer i, 1 <= i <= n, find the i th smallest element in the array. Pick random list element called “pivot.” Partition list into those smaller than pivot, those bigger than pivot. Using i and size of partition sets, determine in which set to continue looking. ex. 17, 42, 3, 8, 19, 21, 2 i = 3 Random pivot: 17 Smaller than 17: 3, 8, 2 Bigger than 17: 42, 19, 21

  10. Selection Problem: HOW Given list of distinct integers a 1 , a 2 , …, a n and integer i, 1 <= i <= n, find the i th smallest element in the array. Pick random list element called “pivot.” Partition list into those smaller than pivot, those bigger than pivot. Using i and size of partition sets, determine in which set to continue looking. ex. 17, 42, 3, 8, 19, 21, 2 i = 3 Random pivot: 17 Smaller than 17: 3, 8, 2 Bigger than 17: 42, 19, 21 Has 3 elements so third smallest must be in this set

  11. Selection Problem: HOW Given list of distinct integers a 1 , a 2 , …, a n and integer i, 1 <= i <= n, find the i th smallest element in the array. Pick random list element called “pivot.” Partition list into those smaller than pivot, those bigger than pivot. Using i and size of partition sets, determine in which set to continue looking. ex. 17, 42, 3, 8, 19, 21, 2 i = 3 Random pivot: 17 New list: 3, 8, 2 i = 3

  12. Selection Problem: HOW Given list of distinct integers a 1 , a 2 , …, a n and integer i, 1 <= i <= n, find the i th smallest element in the array. Pick random list element called “pivot.” Partition list into those smaller than pivot, those bigger than pivot. Using i and size of partition sets, determine in which set to continue looking. ex. 17, 42, 3, 8, 19, 21, 2 i = 3 Random pivot: 17 New list: 3, 8, 2 i = 3 Random pivot: 8

  13. Selection Problem: HOW Given list of distinct integers a 1 , a 2 , …, a n and integer i, 1 <= i <= n, find the i th smallest element in the array. Pick random list element called “pivot.” Partition list into those smaller than pivot, those bigger than pivot. Using i and size of partition sets, determine in which set to continue looking. ex. 17, 42, 3, 8, 19, 21, 2 i = 3 Random pivot: 17 New list: 3, 8, 2 i = 3 Random pivot: 8 Smaller than 8: 3, 2 Bigger than 8:

  14. Selection Problem: HOW Given list of distinct integers a 1 , a 2 , …, a n and integer i, 1 <= i <= n, find the i th smallest element in the array. Pick random list element called “pivot.” Partition list into those smaller than pivot, those bigger than pivot. Using i and size of partition sets, determine in which set to continue looking. ex. 17, 42, 3, 8, 19, 21, 2 i = 3 Random pivot: 17 New list: 3, 8, 2 i = 3 Random pivot: 8 Smaller than 8: 3, 2 Bigger than 8: Has 2 elements so third smallest must be "next" element, i.e. 8

  15. Selection Problem: HOW Given list of distinct integers a 1 , a 2 , …, a n and integer i, 1 <= i <= n, find the i th smallest element in the array. Pick random list element called “pivot.” Partition list into those smaller than pivot, those bigger than pivot. Using i and size of partition sets, determine in which set to continue looking. ex. 17, 42, 3, 8, 19, 21, 2 i = 3 Random pivot: 17 New list: 3, 8, 2 i = 3 Random pivot: 8 Smaller than 8: 3, 2 Bigger than 8: Return 8 compare to original list: 17, 42, 3, 8, 19, 21, 2

  16. Selection Problem: HOW Given list of distinct integers A = a 1 , a 2 , …, a n and integer i, 1 <= i <= n, Algorithm will incorporate both randomness and recursion!

  17. Selection Problem: HOW Given list of distinct integers A = a 1 , a 2 , …, a n and integer i, 1 <= i <= n, RandSelect(A,i) 1. If n=1 return a 1 What are we doing in this first line? A. Establishing the base case of the recursion. B. Establishing the induction step. C. Randomly picking a pivot. D. Randomly returning a list element. E. None of the above.

  18. Selection Problem: HOW Given list of distinct integers A = a 1 , a 2 , …, a n and integer i, 1 <= i <= n, RandSelect(A,i) 1. If n=1 return a 1 2. Initialize lists S and B. 3. Pick integer j uniformly at random from 1 to n. 4. For each index k from 1 to n (except j): 5. if a k < a j , add a k to the list S. 6. if a k > a j , add a k to the list B.

  19. Selection Problem: HOW Given list of distinct integers A = a 1 , a 2 , …, a n and integer i, 1 <= i <= n, RandSelect(A,i) 1. If n=1 return a 1 2. Initialize lists S and B. 3. Pick integer j uniformly at random from 1 to n. 4. For each index k from 1 to n (except j): 5. if a k < a j , add a k to the list S. 6. if a k > a j , add a k to the list B. 7. Let s be the size of S. 8. If s = i-1, return a j .

  20. Selection Problem: HOW Given list of distinct integers A = a 1 , a 2 , …, a n and integer i, 1 <= i <= n, RandSelect(A,i) 1. If n=1 return a 1 What's the right way to fill in this 2. Initialize lists S and B. blank? 3. Pick integer j uniformly at random from 1 to n. A. i 4. For each index k from 1 to n (except j): B. s 5. if a k < a j , add a k to the list S. C. i+s 6. if a k > a j , add a k to the list B. D. i-(s+1) 7. Let s be the size of S. E. None of the above. 8. If s = i-1, return a j . 9. If s >= i, return RandSelect(S, i). 10. If s < i, return RandSelect(B, __???__).

  21. Selection Problem: WHEN Given list of distinct integers A = a 1 , a 2 , …, a n and integer i, 1 <= i <= n, RandSelect(A,i) 1. If n=1 return a 1 What input gives the best-case 2. Initialize lists S and B. performance of this algorithm? 3. Pick integer j uniformly at random from 1 to n. A. When element we're looking 4. For each index k from 1 to n (except j): for is the first in list. 5. if a k < a j , add a k to the list S. B. When element we're looking 6. if a k > a j , add a k to the list B. for is i th in list. 7. Let s be the size of S. C. When element we're looking 8. If s = i-1, return a j . for is in the middle of the list. D. When element we're looking 9. If s >= i, return RandSelect(S, i). for is last in list. 10. If s < i, return RandSelect(B, i-(s+1)). E. None of the above.

  22. Selection Problem: WHEN Given list of distinct integers A = a 1 , a 2 , …, a n and integer i, 1 <= i <= n, RandSelect(A,i) 1. If n=1 return a 1 2. Initialize lists S and B. 3. Pick integer j uniformly at random from 1 to n. 4. For each index k from 1 to n (except j): 5. if a k < a j , add a k to the list S. Performance 6. if a k > a j , add a k to the list B. depends on more 7. Let s be the size of S. than the input! 8. If s = i-1, return a j . 9. If s >= i, return RandSelect(S, i). 10. If s < i, return RandSelect(B, i-(s+1)).

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