@@ -125,6 +125,12 @@ async function BubbleSort() {
125
125
// QuickSort
126
126
127
127
async function Partition ( start , end ) {
128
+
129
+ for ( i = start ; i < end ; i ++ ) {
130
+ myCollection [ i ] . style . background = "cyan" ;
131
+ myCollection [ i ] . style . color = "cyan" ;
132
+ }
133
+
128
134
var pivot = removePx ( myCollection [ end ] . style . height ) ;
129
135
var partitionIndex = start ;
130
136
@@ -142,16 +148,26 @@ async function Partition(start,end) {
142
148
partitionIndex ++ ;
143
149
}
144
150
}
145
- await Swap ( partitionIndex , end ) ;
151
+ await Swap ( partitionIndex , end ) ;
152
+
153
+ for ( i = start ; i < end ; i ++ ) {
154
+ myCollection [ i ] . style . background = "bisque" ;
155
+ myCollection [ i ] . style . color = "bisque" ;
156
+ }
157
+
146
158
return partitionIndex ;
147
159
}
148
160
149
161
async function QuickSort ( start , end ) {
162
+
163
+
150
164
if ( start < end ) {
165
+ isSorted = 1 ;
151
166
var partitionIndex = await Partition ( start , end ) ;
152
167
await QuickSort ( start , partitionIndex - 1 ) ;
153
- await QuickSort ( partitionIndex + 1 , end ) ;
154
- }
168
+ await QuickSort ( partitionIndex + 1 , end ) ;
169
+ }
170
+
155
171
}
156
172
157
173
function doQuickSort ( ) {
@@ -163,7 +179,7 @@ function doQuickSort() {
163
179
// MergeSort
164
180
165
181
async function merge ( l , m , r ) {
166
- await sleep ( 200 ) ;
182
+ await sleep ( 100 ) ;
167
183
// Find sizes of two subarrays to be merged
168
184
var n1 = m - l + 1 ;
169
185
var n2 = r - m ;
@@ -219,24 +235,26 @@ async function merge(l, m, r) {
219
235
while ( j < n2 ) {
220
236
myCollection [ k ] . style . height = addPx ( rightArray [ j ] ) ;
221
237
j ++ ;
222
- k ++ ;
223
-
224
- }
225
-
238
+ k ++ ;
239
+ }
226
240
227
241
}
228
242
229
243
async function MergeSort ( l , r ) {
230
244
await sleep ( 50 ) ;
231
245
if ( l < r ) {
232
- myCollection [ l ] . style . background = "red" ;
246
+ myCollection [ l ] . style . background = "red" ;
247
+ myCollection [ l ] . style . color = "red" ;
233
248
var m = Math . floor ( ( l + r ) / 2 ) ;
234
249
await MergeSort ( l , m ) ;
235
250
await MergeSort ( m + 1 , r ) ;
236
251
myCollection [ r ] . style . background = "green" ;
252
+ myCollection [ r ] . style . color = "green" ;
237
253
await merge ( l , m , r ) ;
238
254
myCollection [ l ] . style . background = "cyan" ;
239
- myCollection [ r ] . style . background = "cyan" ;
255
+ myCollection [ l ] . style . color = "cyan" ;
256
+ myCollection [ r ] . style . background = "cyan" ;
257
+ myCollection [ r ] . style . color = "cyan" ;
240
258
}
241
259
}
242
260
0 commit comments