Searching and Sorting
description
Transcript of Searching and Sorting
Searching and Sorting
Topics
Linear and Binary SearchesSelection SortBubble Sort
ObjectivesAt the completion of this topic, students should be able to:
Explain the difference between a linear and a binary searchWrite a linear search routineWrite a binary search routineWrite a bubble sort routine
Find the person who is 23 years old.
Rules1. You may only talk to one person at a time2. You may only ask “How old are you?”3. The person must respond in years and months
Write down your algorithm
Searching an ArrayLinear SearchBinary Search
Linear SearchexamScores
0123456789
72985687648377916670
Problem: Determine which element in the arraycontains the score 87.
int thisOne = -1;
for (int index = 0; index < SIZE; index++){ if (examScores[index] == 87) thisOne = index;}
…
Binary SearchIn general, a binary search is much, much faster than a linear search, but requires that the array be sorted.
examScores
72
98
87
64
8377
91
6670
Start in the middle
Is this the one you are looking for (87)?If not, is this number smaller than 87?In this case it is. Therefore, we can elminatethe entire bottom half of the array. Why?Now try again, picking the middle of the remaining array elements.
Arrange the people in order of age – youngest to oldest
Rules1. You may only talk to one person at a time2. You may only ask “How old are you?”3. Responses will be in years and months.4. You are only allowed to keep track of two people’s ages at any one time.5. You may only ask two people to switch places at this time.6. A person cannot move unless asked to.
Write down your algorithm
SortingSorting means to put data into some specified order.
There are many, many algorithms that have been developedto sort data. In this section we will mention two of them:
Selection SortBubble Sort
Selection SortAlgorithm Development
Selection Sort
7 3 9 6 5 2
Step one:find the lowest cardin the hand
Selection sort
7 3 9 6 5 2
Step two:Swap the lowest card withthe left-most card
left-most card
Selection Sort
7 3 9 6 52
Selection Sort
3 9 6
7
52
Selection Sort
3 9 6752
Selection Sort
3 9 6752
Now … Make the second card The left-most card
left-most card
Selection Sort
3 9 6752
Find the lowest cardin the remaining cards
3 9 6752
Selection Sort
left-most card
It is already the left-most card, sono swap is required
Selection Sort
3 9 6752
Left-most card
Now make the thirdcard the left-most card
Selection Sort
3 9 6752
And find the lowest cardIn the remaining cards
Selection Sort
3 9 6
5
72
Swap it with the left-most card
Selection Sort
3 5 6972
Selection Sort
3 5 6972
Make the 4th cardthe left-most card
Selection Sort
3 5 6972
Find the lowest cardin the remaining cards
Selection Sort
3 5 6972
The lowest card is theleft-most card, so noswap is necessary
Selection Sort
3 5 6972
Make the next cardthe Leftmost-card
Selection Sort
3 5 6972
Lowest remaining cardis the left-most card sono swap is necessary
Selection Sort
3 5 6972
Make the next card the left-mostcard. It is the last card, so we aredone
Activity Diagram High Level View
Find lowest card in hand
Swap it with the left-most
card
Make the left-most card the card to the right of the current
left-most card
Is this the last card?
Find the lowest cardIn the set of cards to the right of the current left-most card
endyes
no
start
Study Lab #24 to see how a Bubble Sort works.