this presentation includes custom animations
DESCRIPTION
This presentation includes custom animations. To view the animations, you must view the presentation in Slide Show mode and activeX controls must be allowed. If you have opened this lesson in PowerPoint, use the PowerPoint menus to view it in slide show mode. - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: This presentation includes custom animations](https://reader034.vdocuments.us/reader034/viewer/2022051517/56815ab3550346895dc864ba/html5/thumbnails/1.jpg)
This presentation includes custom animations.
To view the animations, you must view the presentation in Slide Show modeand activeX controls must be allowed.
If you have opened this lesson in PowerPoint, use the PowerPoint menus to view it in slide show mode.
If you have opened this lesson in a browser and see a bar similar to that below, click on the Slide Show icon
A notice similar to the one below may appear warning that ActiveX or other scripts are disabled. Enable the controls for this website in order to see the animations.
![Page 2: This presentation includes custom animations](https://reader034.vdocuments.us/reader034/viewer/2022051517/56815ab3550346895dc864ba/html5/thumbnails/2.jpg)
Sorting Algorithms
Christine S. WolfeOhio University Lancaster2008-Aug-01
This lesson describes two famous sorting algorithms.
Vocabulary
ascending orderbubble sortdescending orderselection sortsort
![Page 3: This presentation includes custom animations](https://reader034.vdocuments.us/reader034/viewer/2022051517/56815ab3550346895dc864ba/html5/thumbnails/3.jpg)
To sort a list of items means to organize the list based on some order such as alphabetical order or numeric order.
When a list is sorted with the lowest value item at the top, the list is said to be in ascending order.
When a list is sorted with the highest value items at the top, the list is said to be in descending order.
169
961
![Page 4: This presentation includes custom animations](https://reader034.vdocuments.us/reader034/viewer/2022051517/56815ab3550346895dc864ba/html5/thumbnails/4.jpg)
How do I sort thee? Let me count the ways.
Bubble sort
Insertion sort
Selection sort
Shell sort
Heap sort
Merge sort
Quick sort
A Few Famous Sorting Algorithms
Simple and "Slow"
Complex and "Fast"
![Page 5: This presentation includes custom animations](https://reader034.vdocuments.us/reader034/viewer/2022051517/56815ab3550346895dc864ba/html5/thumbnails/5.jpg)
The selection sort works by hunting for the value that belongs in a position.
Round 1
EndStart
30
10
60
20
30
10
60
20
40 40
50 50
![Page 6: This presentation includes custom animations](https://reader034.vdocuments.us/reader034/viewer/2022051517/56815ab3550346895dc864ba/html5/thumbnails/6.jpg)
The selection sort works by hunting for the value that belongs in a position.
Round 2
EndStart
30
10
60
20
30
10
60
20
4040
5050
![Page 7: This presentation includes custom animations](https://reader034.vdocuments.us/reader034/viewer/2022051517/56815ab3550346895dc864ba/html5/thumbnails/7.jpg)
The selection sort works by hunting for the value that belongs in a position.
Round 3
EndStart
30
10
60
20
40
50
30
10
60
20
40
50
![Page 8: This presentation includes custom animations](https://reader034.vdocuments.us/reader034/viewer/2022051517/56815ab3550346895dc864ba/html5/thumbnails/8.jpg)
The selection sort works by hunting for the value that belongs in a position.
Round 4
EndStart
30
10
60
20
40
50
30
10
60
20
40
50
![Page 9: This presentation includes custom animations](https://reader034.vdocuments.us/reader034/viewer/2022051517/56815ab3550346895dc864ba/html5/thumbnails/9.jpg)
The selection sort works by hunting for the value that belongs in a position.
Round 5
EndStart
30
10
60
20
40
50
30
10
60
20
40
50
![Page 10: This presentation includes custom animations](https://reader034.vdocuments.us/reader034/viewer/2022051517/56815ab3550346895dc864ba/html5/thumbnails/10.jpg)
Round 1 Round 2 Round 3 Round 4 Round 5
Notice that at the end of each round, another value is in the correct position.
![Page 11: This presentation includes custom animations](https://reader034.vdocuments.us/reader034/viewer/2022051517/56815ab3550346895dc864ba/html5/thumbnails/11.jpg)
If the numbers are stored in an array named, Box, how is the array declared? int Box[6];
Round 1 Round 2 Round 3
Round 4 Round 5
Click for Answer
![Page 12: This presentation includes custom animations](https://reader034.vdocuments.us/reader034/viewer/2022051517/56815ab3550346895dc864ba/html5/thumbnails/12.jpg)
for (FillMe = 0; FillMe <= 5; ++FillMe){
}
int FillMe;int Box[6];
How does the algorithm loop through all the positions it has to fill?
Round 1 Round 2 Round 3
Round 4 Round 5
Click for Answer
![Page 13: This presentation includes custom animations](https://reader034.vdocuments.us/reader034/viewer/2022051517/56815ab3550346895dc864ba/html5/thumbnails/13.jpg)
for (FillMe = 0; FillMe <= 5; ++FillMe)
LowValue = Box[FillMe];{
for (test = FillMe + 1; test <= 4; ++test)
{if (Box[test] < LowValue)
{LowValue = Box[test];LowIndex = test;
LowIndex = FillMe;
}}
}
int FillMe;int LowValue;
int LowIndex;
int Box[6];
How does the algorithm find the value to store in the target position?
Round 1 Round 2 Round 3
Round 4 Round 5
Click for Answer
![Page 14: This presentation includes custom animations](https://reader034.vdocuments.us/reader034/viewer/2022051517/56815ab3550346895dc864ba/html5/thumbnails/14.jpg)
for (FillMe = 0; FillMe <= 5; ++FillMe)
LowValue = Box[FillMe];{
for (test = FillMe + 1; test <= 5; ++test)
{if (Box[test] < LowValue)
{LowValue = Box[test];LowIndex = test;
LowIndex = FillMe;
}}
if (FillMe != LowIndex)
SwapValue = Box[FillMe];Box[FillMe] = Box[LowIndex]Box[LowIndex] = SwapValue;
{
}}
int FillMe;int LowValue;int SwapValue;int LowIndex;
int Box[6];
How does the algorithm store the value in the target position without losing the value that was there originally?
Round 1 Round 2 Round 3
Round 4 Round 5
Click for Answer
![Page 15: This presentation includes custom animations](https://reader034.vdocuments.us/reader034/viewer/2022051517/56815ab3550346895dc864ba/html5/thumbnails/15.jpg)
for (FillMe = 0; FillMe <=5; ++FillMe)
LowValue = Box[FillMe];{
for (test = FillMe + 1; test <= 4; ++test)
{if (Box[test] < LowValue)
{LowValue = Box[test];LowIndex = test;
LowIndex = FillMe;
}}
if (FillMe != LowIndex)
SwapValue = Box[FillMe];Box[FillMe] = Box[LowIndex]Box[LowIndex] = SwapValue;
{
}}
int FillMe;int LowValue;int SwapValue;int LowIndex;
int Box[6];
Be sure you understand this algorithm completely.
Round 1 Round 2 Round 3
Round 4 Round 5
![Page 16: This presentation includes custom animations](https://reader034.vdocuments.us/reader034/viewer/2022051517/56815ab3550346895dc864ba/html5/thumbnails/16.jpg)
3
2
4
5
1
![Page 17: This presentation includes custom animations](https://reader034.vdocuments.us/reader034/viewer/2022051517/56815ab3550346895dc864ba/html5/thumbnails/17.jpg)
3
2
4
5
1
3
2
4
5
1
3
2
4
5
1
3
2
4
5
1
3
2
4
5
1
The bubble sort works by moving the low values to the top while pushing the high values to the bottom.
Round 1
After compare
1
After compare
2
After compare
3
After compare
4Start
![Page 18: This presentation includes custom animations](https://reader034.vdocuments.us/reader034/viewer/2022051517/56815ab3550346895dc864ba/html5/thumbnails/18.jpg)
3
2
4
5
1
3
2
4
5
1
3
2
4
5
1
The bubble sort works by moving the low values to the top while pushing the high values to the bottom.
Round 2
After compare
1
After compare
2
After compare
3Start
3
2
4
5
1
![Page 19: This presentation includes custom animations](https://reader034.vdocuments.us/reader034/viewer/2022051517/56815ab3550346895dc864ba/html5/thumbnails/19.jpg)
3
2
4
5
1 3
2
4
5
1
The bubble sort works by moving the low values to the top while pushing the high values to the bottom.
Round 3
After compare
1
After compare
2Start
3
2
4
5
1
![Page 20: This presentation includes custom animations](https://reader034.vdocuments.us/reader034/viewer/2022051517/56815ab3550346895dc864ba/html5/thumbnails/20.jpg)
3
2
4
5
1
The bubble sort works by moving the low values to the top while pushing the high values to the bottom.
Round 4
After compare
1Start
3
2
4
5
1
![Page 21: This presentation includes custom animations](https://reader034.vdocuments.us/reader034/viewer/2022051517/56815ab3550346895dc864ba/html5/thumbnails/21.jpg)
How does the code declare the array?
Click for Answer
Assume the bubbles are in an array of ints named Bubble.
int Bubble[5];Round 1 Round 2
Round 4Round 3
Declare the array with 5 elements because that is how many numbers are being stored.
![Page 22: This presentation includes custom animations](https://reader034.vdocuments.us/reader034/viewer/2022051517/56815ab3550346895dc864ba/html5/thumbnails/22.jpg)
How does the algorithm swap 2 values? Click for Answer
SwapValue = Bubble[test];Bubble[test] = Bubble[test + 1]Bubble[test + 1] = SwapValue;
int Bubble[5];int SwapValue;int test;
Round 1 Round 2
Round 4Round 3
A holding variable holds one of the values so it isn't overrun by the new value.
![Page 23: This presentation includes custom animations](https://reader034.vdocuments.us/reader034/viewer/2022051517/56815ab3550346895dc864ba/html5/thumbnails/23.jpg)
Round 1 Round 2
Round 4Round 3
How does the algorithm determine if it should swap the 2 values?
Click for Answer
SwapValue = Bubble[test];Bubble[test] = Bubble[test + 1]Bubble[test + 1] = SwapValue;
int Bubble[5];int SwapValue;int test;
if (Bubble[test] > Bubble[test + 1])
{
}
Notice that the element number can be the result of a calculation [test + 1] as long as it's an int.
![Page 24: This presentation includes custom animations](https://reader034.vdocuments.us/reader034/viewer/2022051517/56815ab3550346895dc864ba/html5/thumbnails/24.jpg)
Round 1 Round 2
Round 4Round 3
How does the algorithm loop through all the pairs of bubbles in a round?
Click for Answer
SwapValue = Bubble[test];Bubble[test] = Bubble[test + 1]Bubble[test + 1] = SwapValue;
int Bubble[5];int SwapValue;int test;
if (Bubble[test] > Bubble[test + 1])
{
}
for (test = 0; test <= lastTest; ++test)
{
}
int lastTest = 3;
The last test is the second to last element number in the array.
![Page 25: This presentation includes custom animations](https://reader034.vdocuments.us/reader034/viewer/2022051517/56815ab3550346895dc864ba/html5/thumbnails/25.jpg)
Round 1 Round 2
Round 4Round 3
How does the algorithm loop through all the rounds?
Click for Answer
SwapValue = Bubble[test];Bubble[test] = Bubble[test + 1]Bubble[test + 1] = SwapValue;
int Bubble[5];int SwapValue;int test;
if (Bubble[test] > Bubble[test + 1])
{
}
for (test = 0; test <= lastTest; ++test)
{
}
int lastTest = 3;
--lastTest;
}
while (lastTest > 0)
{
When the last test element number is at the top of the array, the algorithm has looked at all the possibility.
![Page 26: This presentation includes custom animations](https://reader034.vdocuments.us/reader034/viewer/2022051517/56815ab3550346895dc864ba/html5/thumbnails/26.jpg)
Round 1 Round 2
Round 4Round 3
Can the algorithm be made more efficient? Click for Answer
SwapValue = Bubble[test];Bubble[test] = Bubble[test + 1];Bubble[test + 1] = SwapValue;
int Bubble[5];int SwapValue;int test;
if (Bubble[test] > Bubble[test + 1])
{
}
for (test = 0; test <= lastTest; ++test)
{
}
int lastTest = 3;
--lastTest;
}
while ( lastTest > 0)
{
int DidItSwap = 1;
DidItSwap = 0;
DidItSwap = 1;
DidItSwap != 0 &&
If there is ever a round where no values change places, then the array is fully sorted.
![Page 27: This presentation includes custom animations](https://reader034.vdocuments.us/reader034/viewer/2022051517/56815ab3550346895dc864ba/html5/thumbnails/27.jpg)
Round 1 Round 2
Round 4Round 3
Be sure you understand this algorithm completely.
SwapValue = Bubble[test];Bubble[test] = Bubble[test + 1]Bubble[test + 1] = SwapValue;
int Bubble[5];int SwapValue;int test;
if (Bubble[test] > Bubble[test + 1])
{
}
for (test = 0; test <= lastTest; ++test)
{
}
int lastTest = 3;
--lastTest;
}
while (DidItSwap != 0 && lastTest > 0)
{
int DidItSwap = 1;
DidItSwap = 0;
DidItSwap = 1;
![Page 28: This presentation includes custom animations](https://reader034.vdocuments.us/reader034/viewer/2022051517/56815ab3550346895dc864ba/html5/thumbnails/28.jpg)
How would you change the algorithm to sort the bubbles from high to low?
SwapValue = Bubble[test];Bubble[test] = Bubble[test + 1]Bubble[test + 1] = SwapValue;
int Bubble[5];int SwapValue;int test;
if (Nums[test] > Nums[test + 1])
{
}
for (test = 0; test <= lastTest; ++test)
{
}
int lastTest = 4;
--lastTest;
}
while (DidItSwap != 0 && lastTest > 0)
{
int DidItSwap = 1;
DidItSwap = 0;
DidItSwap = 1;
SwapValue = Bubble[test];Bubble[test] = Bubble[test + 1]Bubble[test + 1] = SwapValue;
int Bubble[5];int SwapValue;int test;
if (Bubble[test] Bubble[test + 1])
{
}
for (test = 0; test <= lastTest; ++test)
{
}
int lastTest = 3;
--lastTest;
}
while (DidItSwap != 0 && lastTest > 0)
{
int DidItSwap = 1;
DidItSwap = 0;
DidItSwap = 1;
<
Click for Answer