1
1
var slider = document . getElementById ( "myRange" ) ;
2
2
var slidevalue = document . getElementById ( "value" ) ;
3
3
slidevalue . innerHTML = slider . value ;
4
+ var sortSelection ;
4
5
5
6
6
7
for ( i = 0 ; i < 5 ; i ++ ) {
7
- var w = 810 / 5 ;
8
+ var w = 200 / 5 ;
8
9
var num2 = addPx ( w ) ;
9
10
var n = Math . floor ( Math . random ( ) * 625 ) + 50 ;
10
11
var num = addPx ( n ) ;
@@ -23,13 +24,13 @@ slider.oninput = function() {
23
24
slidevalue . innerHTML = this . value ;
24
25
numBoxes = this . value ;
25
26
var obj = document . getElementsByClassName ( "box" ) ;
26
-
27
+
27
28
while ( obj [ 0 ] ) {
28
29
obj [ 0 ] . parentNode . removeChild ( obj [ 0 ] ) ;
29
30
}
30
31
31
32
for ( i = 0 ; i < numBoxes ; i ++ ) {
32
- var w = 810 / numBoxes ;
33
+ var w = 200 / numBoxes ;
33
34
var num2 = addPx ( w ) ;
34
35
var n = Math . floor ( Math . random ( ) * 600 ) + 30 ;
35
36
var num = addPx ( n ) ;
@@ -68,7 +69,11 @@ function removePx (str) {
68
69
69
70
70
71
async function Swap ( x , y ) {
72
+ if ( sortSelection = 0 ) {
71
73
await sleep ( ( - 22 ) * ( myCollection . length ) + 1120 ) ;
74
+ } else if ( sortSelection = 1 ) {
75
+ await sleep ( 25 ) ;
76
+ }
72
77
var temp = myCollection [ x ] . style . height ;
73
78
myCollection [ x ] . style . height = myCollection [ y ] . style . height ;
74
79
myCollection [ y ] . style . height = temp ;
@@ -85,7 +90,8 @@ function sleep(ms) {
85
90
async function BubbleSort ( ) {
86
91
var isSorted = 0 ;
87
92
var lastUnsorted = myCollection . length - 1 ;
88
-
93
+ sortSelection = 0 ;
94
+
89
95
while ( isSorted == 0 ) {
90
96
isSorted = 1 ;
91
97
for ( i = 0 ; i < lastUnsorted ; i ++ ) {
@@ -116,14 +122,47 @@ async function BubbleSort() {
116
122
}
117
123
}
118
124
125
+ // QuickSort
126
+
127
+ async function Partition ( start , end ) {
128
+ var pivot = removePx ( myCollection [ end ] . style . height ) ;
129
+ var partitionIndex = start ;
130
+
131
+ for ( i = start ; i < end ; i ++ ) {
132
+ if ( removePx ( myCollection [ i ] . style . height ) >= pivot ) {
133
+ myCollection [ i ] . style . background = "red" ;
134
+ myCollection [ i ] . style . color = "red" ;
135
+ myCollection [ partitionIndex ] . style . background = "red" ;
136
+ myCollection [ partitionIndex ] . style . color = "red" ;
137
+ await Swap ( i , partitionIndex ) ;
138
+ myCollection [ i ] . style . background = "bisque" ;
139
+ myCollection [ i ] . style . color = "bisque" ;
140
+ myCollection [ partitionIndex ] . style . background = "bisque" ;
141
+ myCollection [ partitionIndex ] . style . color = "bisque" ;
142
+ partitionIndex ++ ;
143
+ }
144
+ }
145
+ await Swap ( partitionIndex , end ) ;
146
+ return partitionIndex ;
147
+ }
119
148
149
+ async function QuickSort ( start , end ) {
150
+ if ( start < end ) {
151
+ var partitionIndex = await Partition ( start , end ) ;
152
+ await QuickSort ( start , partitionIndex - 1 ) ;
153
+ await QuickSort ( partitionIndex + 1 , end ) ;
154
+ }
155
+ }
120
156
157
+ function doQuickSort ( ) {
158
+ sortSelection = 1 ;
159
+ QuickSort ( 0 , myCollection . length - 1 ) ;
160
+ }
121
161
122
- // MergeSort
162
+ // MergeSort
123
163
124
164
125
165
126
- //QuickSort
127
166
128
167
129
168
0 commit comments