Skip to content

Commit c097efd

Browse files
displaying merge progress finished
1 parent c3acefd commit c097efd

File tree

2 files changed

+14
-11
lines changed

2 files changed

+14
-11
lines changed

src/algorithms/controllers/msort_arr_nat.js

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -175,19 +175,19 @@ export function run_msort() {
175175
let A = nodes;
176176
let B = [...entire_num_array].fill(undefined);
177177
let runlength = 1; // length of run to merge
178-
let runcount = 2; // number of runs merged
178+
let runcount = 0; // number of runs merged
179179

180180
chunker.add('Main', (vis, a, b, c_length, c_count) => {
181181
vis.array.set(a, 'msort_arr_nat');
182-
//if (c_length === 1) {
183-
vis.array.setLargestValue(maxValue);
184-
//}
182+
if (runcount === 0) {
183+
vis.array.setLargestValue(maxValue);
184+
}
185185
if (isMergeCopyExpanded()) {
186186
vis.arrayB.set(b, 'msort_arr_nat');
187187
vis.arrayB.setLargestValue(maxValue);
188188
}
189189

190-
}, [A, B, size]);
190+
}, [A, B, size, runcount]);
191191

192192
/*chunker.add('runlength', (vis, c_rlength) => {
193193
displayRunlength(vis, c_rlength, size);
@@ -218,12 +218,12 @@ export function run_msort() {
218218
assignVarToA(vis, 'left', c_left, size);
219219
}, [left]);
220220

221-
while (left <= size) {
221+
do {
222222

223223
let mid = left;
224224

225225
chunker.add('MergeAllWhile', (vis, c_left, c_mid, c_right) => {
226-
highlight2Runlength(vis, c_left, c_mid, c_right, colorA, colorB);
226+
//highlight2Runlength(vis, c_left, c_mid, c_right, colorA, colorB);
227227
}, [left, mid]);
228228

229229
chunker.add('mid', (vis, c_mid, c_rlength) => {
@@ -445,8 +445,11 @@ export function run_msort() {
445445
}, [A, B, left, right, runlength]);
446446
}
447447
let left2 = left; // this is the old left before it was updated
448-
448+
//if (right + 1 <= size) {
449449
left = right + 1;
450+
//} else {
451+
// left = 0;
452+
//}
450453
runcount = runcount + 1;
451454
chunker.add('runcount+', (vis, c_rlength) => {
452455
/*assignVarToA(vis, 'left', undefined, size);
@@ -466,9 +469,9 @@ export function run_msort() {
466469

467470
}, [left2, left, right]);
468471

469-
}
472+
} while (left < size);
470473

471-
} while (runcount <= 1);
474+
} while (runcount > 1);
472475

473476
chunker.add('Done', (vis) => {
474477
for (let i = 0; i < size; i++) {

src/algorithms/pseudocode/msort_arr_nat.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,7 @@ CopySmaller
153153
\\Note{ Clearer to duplicate this in then and else branches(?)
154154
\\Note}
155155
\\In}
156-
else
156+
else \\B findSmallerB
157157
\\In{
158158
B[bp] <- A[ap2] \\B copyap2
159159
\\Expl{ The animation shows the value being deleted from A[ap2] since it

0 commit comments

Comments
 (0)