1 / 42

Lecture # 30 Data Organization and Binary Search

Lecture # 30 Data Organization and Binary Search. Data Organization. Problem. Huge amounts of information How do I find Information that I know I want Information related to what I want How do I understand Particular pieces of information The whole collection of information.

Download Presentation

Lecture # 30 Data Organization and Binary Search

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Lecture # 30 Data Organization and Binary Search

  2. Data Organization

  3. Problem • Huge amounts of information • How do I find • Information that I know I want • Information related to what I want • How do I understand • Particular pieces of information • The whole collection of information

  4. Limitations • Screen space • Network bandwidth • Bandwidth - how much information can be transmitted per second • Human attention

  5. Kinds of things to organize • Menu items • MS Word - about 150 menu items • Text • Pages in a book - 500 • Documents on the WWW - gazillions • Images • All of the pictures created in a commercial advertising company

  6. Kinds of things to organize • Sounds • Sound tracks to all TV and Radio news broadcasts • Video • A complete collection of classic movies • Structured information (records) • People • Cars • Students • Electronic appliance parts

  7. A question of scale • 10 things • 100 things - menu • 1,000 things - files on your computer • 10,000 things - students at a university • 1,000,000 things - books in a library • gazillion things - WWW pages

  8. Three ways to find things • Lists • arrays • Trees • organize in to categories • Search • describe what you want and have the computer find it

  9. The Phone Book Challenge • How long will it take to find “Bill Lund” in the BYU Directory? • How long will it take to find “422-8766” in the BYU Directory?

  10. What Algorithm did you use to search the phone book? • Where did you start? • How many steps did it take? • Is there a more efficient way?

  11. Binary search - for “Goodrich”

  12. Binary search - for “Goodrich” Lower = 0 Upper = 10 Guess = (0+10)/2 = 5

  13. Binary search - for “Goodrich” Lower = 0 Upper = 5 Guess = (0+5)/2 = 2

  14. Binary search - for “Goodrich” Lower = 2 Upper = 5 Guess = (2+5)/2 = 3

  15. Binary search - for “Goodrich” Lower = 3 Upper = 5 Guess = (3+5)/2 = 4

  16. Binary search • If there are 64 things in a list, how many times can you divide that list in half? • 32, 16, 8, 4, 2, 1 • 6 times

  17. Binary search • If there are 1024 things in a list, how many times can you divide that list in half? • 512, 256, 128, 64, 32, 16, 8, 4, 2, 1 • 10 times

  18. Binary search • If the size of the list doubles, how many more steps are required in a binary search? 1

  19. Binary search • If there are N items in a list then binary search takes • log2(N) steps

  20. Binary search • Estimating log2(N) • Count the number of digits and multiply by 2.5 • 1000 • 4*2.5 = 10 steps • 1,000,000 • 7*2.5 = 17-18 steps • 1,000,000,000 • 10*2.5= 25 steps

  21. Provo/Orem phone book • How long to find “Bill Lund?” ~ 5000 in the BYU Directory • Log2(5000) approx 4*2.5 = 10 steps

  22. How to find a phone number • 920-3231 • 1 step • 130-2313 • 11 steps • Average? • 5 steps • Average N? • N/2

  23. Provo/Orem phone book • How many steps to find a phone number? • 5,000/2 = 2,500 average • How can we improve this?

  24. Sort the phone book by phone number • What if I want to search on both name and number?

  25. Phone number Last Name Using an Index

  26. Phone number Last Name Using an Index Anderson

  27. Phone number Last Name Using an Index Anderson, Bilinski

  28. Phone number Last Name Using an Index Anderson, Bilinski, Clark

  29. Phone number Last Name Using an Index Anderson, Bilinski, Clark, Garcia

  30. Phone number Last Name Using an Index 123-3123

  31. Phone number Last Name Using an Index 123-3123, 130-2313

  32. Phone number Last Name Using an Index 123-3123, 130-2313, 232-0312

  33. Phone number Last Name Using an Index 123-3123, 130-2313, 232-0312, 238-1234

  34. Last Name Search for Goodrich Lower = 0 Upper = 10 Guess = 5 lower

  35. Last Name Search for Goodrich Lower = 0 Upper = 5 Guess = 2 above

  36. Last Name Search for Goodrich Lower = 2 Upper = 5 Guess = 3 above

  37. Last Name Search for Goodrich Lower = 3 Upper = 5 Guess = 4 above

  38. Phone number Search for 823-1242 Lower = 0 Upper = 10 Guess = 5 above

  39. Phone number Search for 823-1242 Lower = 5 Upper = 10 Guess = 7 below

  40. Phone number Search for 823-1242 Lower = 5 Upper = 7 Guess = 6 MATCH

  41. Phone number Last Name Using an Index • What about first name or city? • another index

  42. Data Organization Summary • What are we organizing for? • Scale • 10 - 1,000 - 1,000,000 - 1,000,000,000 • Lists • Unsorted (N/2) • Sorted Log2(N) • count the digits and multiply by 2.5 • To access in many ways • Use many indices into the same data

More Related