@@ -158,8 +158,8 @@ export function run_msort() {
158158 } , [ left ] ) ;
159159
160160 do {
161- chunker . add ( 'MergeAllWhile' , ( ) => {
162- // no animation
161+ chunker . add ( 'MergeAllWhile' , ( vis ) => {
162+ assignVarToA ( vis , 'right' , undefined , size ) ;
163163 } , [ ] ) ;
164164
165165 // finding the first run, A[left..mid]
@@ -184,8 +184,8 @@ export function run_msort() {
184184 // finding the second run, A[mid+1..right]
185185 let right = mid + 1 ;
186186 chunker . add ( 'right' , ( vis , c_right ) => {
187+ assignVarToA ( vis , 'right' , c_right , size ) ;
187188 if ( right < size ) {
188- assignVarToA ( vis , 'right' , c_right , size ) ;
189189 highlight ( vis , c_right , runBColor ) ;
190190 }
191191 } , [ right ] ) ;
@@ -383,11 +383,9 @@ export function run_msort() {
383383 chunker . add ( 'left2' , ( vis , a , c_left , c_right , c_rcount ) => {
384384 vis . array . set ( a , 'msort_arr_nat' ) ; // unhighlight array a
385385 set_simple_stack ( vis . array , [ `runcount = ${ c_rcount } ` ] ) ;
386- if ( c_left < size ) {
387- assignVarToA ( vis , 'left' , c_left , size ) ;
388- assignVarToA ( vis , "right" , c_right , size ) ;
389- }
390- // assignVarToA(vis, "size", size, size);
386+ assignVarToA ( vis , 'left' , c_left , size ) ;
387+ assignVarToA ( vis , 'right' , c_right , size ) ;
388+ // assignVarToA(vis, 'size', size-1, size);
391389
392390
393391 } , [ A , left , right , runcount ] ) ;
@@ -396,6 +394,8 @@ export function run_msort() {
396394
397395 chunker . add ( 'mergeDone' , ( vis , a ) => {
398396 highlightNaturalRuns ( vis , a , runAColor , runBColor ) ;
397+ assignVarToA ( vis , 'left' , undefined , size ) ;
398+ assignVarToA ( vis , 'right' , undefined , size ) ;
399399 } , [ A ] )
400400
401401 } while ( runcount > 1 ) ;
0 commit comments