bubble trouble a statistical analysis of the bubble sort
TRANSCRIPT
![Page 1: Bubble Trouble A statistical analysis of the Bubble Sort](https://reader036.vdocuments.us/reader036/viewer/2022062304/56649e305503460f94b20b92/html5/thumbnails/1.jpg)
Bubble Trouble
A statistical analysis of the Bubble Sort.
![Page 2: Bubble Trouble A statistical analysis of the Bubble Sort](https://reader036.vdocuments.us/reader036/viewer/2022062304/56649e305503460f94b20b92/html5/thumbnails/2.jpg)
The Guys Who Bring It To You
Jon Kroening
Nick Jones
Erik Weyers
Andy Schieber
Sean Porter
![Page 3: Bubble Trouble A statistical analysis of the Bubble Sort](https://reader036.vdocuments.us/reader036/viewer/2022062304/56649e305503460f94b20b92/html5/thumbnails/3.jpg)
History and Background
Jon Kroening
![Page 4: Bubble Trouble A statistical analysis of the Bubble Sort](https://reader036.vdocuments.us/reader036/viewer/2022062304/56649e305503460f94b20b92/html5/thumbnails/4.jpg)
The Bubble Sort
Popular algorithm used for sorting dataIverson was the first to use name ‘bubble sort’ in 1962, even though used earlierUnfortunately it is commonly used where the number of elements is too large
![Page 5: Bubble Trouble A statistical analysis of the Bubble Sort](https://reader036.vdocuments.us/reader036/viewer/2022062304/56649e305503460f94b20b92/html5/thumbnails/5.jpg)
The Bubble Sort Starts at one end of the array and make repeated scans through the list comparing successive pairs of elements
5 3 6 2 8 9 1
If the first element is larger than the second, called an inversion, then the values are swapped
3 5 6 2 8 9 1
![Page 6: Bubble Trouble A statistical analysis of the Bubble Sort](https://reader036.vdocuments.us/reader036/viewer/2022062304/56649e305503460f94b20b92/html5/thumbnails/6.jpg)
The Bubble Sort
Each scan will push the maximum element to the top3 5 6 2 8 9 13 5 6 2 8 9 13 5 2 6 8 9 13 5 2 6 8 9 13 5 2 6 8 9 13 5 2 6 8 1 9
![Page 7: Bubble Trouble A statistical analysis of the Bubble Sort](https://reader036.vdocuments.us/reader036/viewer/2022062304/56649e305503460f94b20b92/html5/thumbnails/7.jpg)
The Bubble Sort
This is the “bubbling” effect that gives the bubble sort its name
This process is continued until the list is sorted
The more inversions in the list, the longer it takes to sort
![Page 8: Bubble Trouble A statistical analysis of the Bubble Sort](https://reader036.vdocuments.us/reader036/viewer/2022062304/56649e305503460f94b20b92/html5/thumbnails/8.jpg)
3 5 2 6 8 1 9
3 5 2 6 8 1 9
3 2 5 6 8 1 9
3 2 5 6 8 1 9
3 2 5 6 8 1 9
3 2 5 6 1 8 9
2 3 5 6 1 8 9
2 3 5 6 1 8 9
2 3 5 6 1 8 9
2 3 5 1 6 8 9
2 3 5 1 6 8 9
2 3 5 1 6 8 9
2 3 1 5 6 8 9
2 3 1 5 6 8 9
2 1 3 5 6 8 9
1 2 3 5 6 8 9
![Page 9: Bubble Trouble A statistical analysis of the Bubble Sort](https://reader036.vdocuments.us/reader036/viewer/2022062304/56649e305503460f94b20b92/html5/thumbnails/9.jpg)
Bubble Sort Algorithmtemplate <typename R>void bubbleSort(vector<R>& v){
int pass, length;R temp;for( length = 0; length < v.size()-1; length++){
for(pass = 0; pass < v.size()-1; pass ++){
if(v[pass] > v[pass +1]){
temp = v[pass];v[pass] = v[pass + 1];v[pass + 1] = temp;
}}
}}
![Page 10: Bubble Trouble A statistical analysis of the Bubble Sort](https://reader036.vdocuments.us/reader036/viewer/2022062304/56649e305503460f94b20b92/html5/thumbnails/10.jpg)
Best and Worst Case Scenarios
Nick Jones
![Page 11: Bubble Trouble A statistical analysis of the Bubble Sort](https://reader036.vdocuments.us/reader036/viewer/2022062304/56649e305503460f94b20b92/html5/thumbnails/11.jpg)
Best Case of the Bubble Sort
Let X: number of interchanges (discrete).Consider list of n elements already sorted
x1 < x2 < x3 < … < xn
![Page 12: Bubble Trouble A statistical analysis of the Bubble Sort](https://reader036.vdocuments.us/reader036/viewer/2022062304/56649e305503460f94b20b92/html5/thumbnails/12.jpg)
Best Case (cont.)
Only have to run through the list once since it is already in order, thus giving you n-1 comparisons and X = 0.
Therefore, the time complexity of the best case scenario is O(n).
![Page 13: Bubble Trouble A statistical analysis of the Bubble Sort](https://reader036.vdocuments.us/reader036/viewer/2022062304/56649e305503460f94b20b92/html5/thumbnails/13.jpg)
Worst Case of the Bubble Sort
Let X: number of interchanges (discrete).Consider list of n elements in descending order
x1 > x2 > x3 > … > xn.
![Page 14: Bubble Trouble A statistical analysis of the Bubble Sort](https://reader036.vdocuments.us/reader036/viewer/2022062304/56649e305503460f94b20b92/html5/thumbnails/14.jpg)
Worst Case (cont.)
# of comparisons = # of interchanges for each pass.
X = (n-1) + (n-2) + (n-3) + … + 2 + 1
This is an arithmetic series.
![Page 15: Bubble Trouble A statistical analysis of the Bubble Sort](https://reader036.vdocuments.us/reader036/viewer/2022062304/56649e305503460f94b20b92/html5/thumbnails/15.jpg)
Worst Case (cont.)
(n-1) + (n-2) + … + 2 + 1 = n(n-1)/2
So X = n(n-1)/2.
Therefore, the time complexity of the worst case scenario is O(n2).
![Page 16: Bubble Trouble A statistical analysis of the Bubble Sort](https://reader036.vdocuments.us/reader036/viewer/2022062304/56649e305503460f94b20b92/html5/thumbnails/16.jpg)
Time Complexity Model of the Worst Case
# elements
Tim
e in
sec
onds
![Page 17: Bubble Trouble A statistical analysis of the Bubble Sort](https://reader036.vdocuments.us/reader036/viewer/2022062304/56649e305503460f94b20b92/html5/thumbnails/17.jpg)
Average Case
Nick Jones, Andy Schieber & Erik Weyers
![Page 18: Bubble Trouble A statistical analysis of the Bubble Sort](https://reader036.vdocuments.us/reader036/viewer/2022062304/56649e305503460f94b20b92/html5/thumbnails/18.jpg)
Random Variables A random variable is called discrete if its range is finite or countably infinite.
Bernoulli Random Variable – type of discrete random variable with a probability mass function
p(x) = P{X = x}
![Page 19: Bubble Trouble A statistical analysis of the Bubble Sort](https://reader036.vdocuments.us/reader036/viewer/2022062304/56649e305503460f94b20b92/html5/thumbnails/19.jpg)
Bernoulli Random Variable
X is a Bernoulli Random Variable with probability p if
px(x) = px(1-p)1-x, x = {0,1}.
Other notes:E[X] = p
![Page 20: Bubble Trouble A statistical analysis of the Bubble Sort](https://reader036.vdocuments.us/reader036/viewer/2022062304/56649e305503460f94b20b92/html5/thumbnails/20.jpg)
Expected Value
The expected value of a discrete random variable is
nnpxpxpxxpxn
iii
...)( 2211
1
![Page 21: Bubble Trouble A statistical analysis of the Bubble Sort](https://reader036.vdocuments.us/reader036/viewer/2022062304/56649e305503460f94b20b92/html5/thumbnails/21.jpg)
Sums of Random Variables
If are random variables then
i.e. expectation is linear
nXXX ...2,1
n
ii
n
ii XEXE ][
![Page 22: Bubble Trouble A statistical analysis of the Bubble Sort](https://reader036.vdocuments.us/reader036/viewer/2022062304/56649e305503460f94b20b92/html5/thumbnails/22.jpg)
Analytic Estimates for Bubble Sort
I = number of inversions
X = number of interchanges
Every inversion needs to be interchanged in order to sort the list, therefore X must be at least I,
E[X] = The average number of inversions
][][ XEIE
![Page 23: Bubble Trouble A statistical analysis of the Bubble Sort](https://reader036.vdocuments.us/reader036/viewer/2022062304/56649e305503460f94b20b92/html5/thumbnails/23.jpg)
and
2
)1(][0
nnXE
ji
jiII ),(
invertednotinverted
jiI 01
),(
Case Worst ][ caseBest XE
ji
jiIEIE )],([][
![Page 24: Bubble Trouble A statistical analysis of the Bubble Sort](https://reader036.vdocuments.us/reader036/viewer/2022062304/56649e305503460f94b20b92/html5/thumbnails/24.jpg)
The probability that i, j are inverted is .5 I is a Bernoulli random variable,
therefore
there are
terms in the above sum
5.}1),({ jiIp 5.)],([ jiIE
2
)1(
)!2(!2
!2
nn
n
nn
![Page 25: Bubble Trouble A statistical analysis of the Bubble Sort](https://reader036.vdocuments.us/reader036/viewer/2022062304/56649e305503460f94b20b92/html5/thumbnails/25.jpg)
Since p(I) = .5 and there are
terms in the above sum
then
2
)1( nn
4
)1(
2
1
2
)1(][
nnnn
IE
![Page 26: Bubble Trouble A statistical analysis of the Bubble Sort](https://reader036.vdocuments.us/reader036/viewer/2022062304/56649e305503460f94b20b92/html5/thumbnails/26.jpg)
So
The average case is equivalent to the worst case
2
)1(][
4
)1(
nnXE
nn
)(][)( 22 nOXEnO
)(][ 2nOXE
![Page 27: Bubble Trouble A statistical analysis of the Bubble Sort](https://reader036.vdocuments.us/reader036/viewer/2022062304/56649e305503460f94b20b92/html5/thumbnails/27.jpg)
Simulation Results
Jon Kroening, Sean Porter, and Erik Weyers
![Page 28: Bubble Trouble A statistical analysis of the Bubble Sort](https://reader036.vdocuments.us/reader036/viewer/2022062304/56649e305503460f94b20b92/html5/thumbnails/28.jpg)
int MAX = 99; int Random[MAX]; int temp, flag;
for(int i = 0; i<100; i++) { flag = 1; // Random Number temp = 1+(int) (100.0*rand()/(RAND_MAX+1.0)); //obtained for(int check = 0; check <= i; check++){ if(Random[check] == temp) //Checks if number is
flag = 0; // already obtained } if(flag == 0) //if number is already obtained i--; //then it will reloop to find new one else{ Random[i] = temp; //Otherwise enters number cout << Random[i] << endl; //in array and displays } }
![Page 29: Bubble Trouble A statistical analysis of the Bubble Sort](https://reader036.vdocuments.us/reader036/viewer/2022062304/56649e305503460f94b20b92/html5/thumbnails/29.jpg)
Simulation ResultsBUBBLE SORT ANALYSIS
2000
2500
3000
1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33
DATASETS
INV
ER
SIO
NS
![Page 30: Bubble Trouble A statistical analysis of the Bubble Sort](https://reader036.vdocuments.us/reader036/viewer/2022062304/56649e305503460f94b20b92/html5/thumbnails/30.jpg)
Worst Case: 49502
)99(100
![Page 31: Bubble Trouble A statistical analysis of the Bubble Sort](https://reader036.vdocuments.us/reader036/viewer/2022062304/56649e305503460f94b20b92/html5/thumbnails/31.jpg)
Closing Comments
The Bubble sort is not efficient, there are other sorting algorithms that are much faster
![Page 32: Bubble Trouble A statistical analysis of the Bubble Sort](https://reader036.vdocuments.us/reader036/viewer/2022062304/56649e305503460f94b20b92/html5/thumbnails/32.jpg)
A Final Note
Thank you Dr. Deckleman for making this all possible
![Page 33: Bubble Trouble A statistical analysis of the Bubble Sort](https://reader036.vdocuments.us/reader036/viewer/2022062304/56649e305503460f94b20b92/html5/thumbnails/33.jpg)
References
“Probability Models for Computer Science” by Sheldon Ross, Academic Press 2002