Download presentation
Presentation is loading. Please wait.
Published byDorthy Newman Modified over 9 years ago
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
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 log 2 (N) steps
20
Binary search Estimating log 2 (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 –Log 2 (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
Using an Index Last NamePhone number
26
Using an Index Last NamePhone number Anderson
27
Using an Index Last NamePhone number Anderson, Bilinski
28
Using an Index Last NamePhone number Anderson, Bilinski, Clark
29
Using an Index Last NamePhone number Anderson, Bilinski, Clark, Garcia
30
Using an Index Last NamePhone number 123-3123
31
Using an Index Last NamePhone number 123-3123, 130-2313
32
Using an Index Last NamePhone number 123-3123, 130-2313, 232-0312
33
Using an Index Last NamePhone number 123-3123, 130-2313, 232-0312, 238-1234
34
Search for Goodrich Last Name Lower = 0 Upper = 10 Guess = 5 lower
35
Search for Goodrich Last Name Lower = 0 Upper = 5 Guess = 2 above
36
Search for Goodrich Last Name Lower = 2 Upper = 5 Guess = 3 above
37
Search for Goodrich Last Name Lower = 3 Upper = 5 Guess = 4 above
38
Search for 823-1242 Lower = 0 Upper = 10 Guess = 5 above Phone number
39
Search for 823-1242 Lower = 5 Upper = 10 Guess = 7 below Phone number
40
Search for 823-1242 Lower = 5 Upper = 7 Guess = 6 MATCH Phone number
41
Using an Index Last NamePhone number 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 Log 2 (N) count the digits and multiply by 2.5 To access in many ways –Use many indices into the same data
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.