@@ -380,7 +380,9 @@ export function run_QS(is_qs_median_of_3) {
380
380
// assigning the pivot as the midpoint calculated above
381
381
chunker_add_if ( QS_BOOKMARKS . MEDIAN3_mid_to_middle_index , ( vis , cur_mid , cur_left , cur_right ) => {
382
382
highlight ( vis , cur_mid , false ) ;
383
- highlight ( vis , cur_left , false ) ;
383
+ // highlight seems to increment counter rather than set flag
384
+ if ( cur_left !== cur_mid )
385
+ highlight ( vis , cur_left , false ) ;
384
386
highlight ( vis , cur_right , false ) ;
385
387
} ,
386
388
[ mid , left , right ] ) ;
@@ -406,12 +408,14 @@ export function run_QS(is_qs_median_of_3) {
406
408
swapAction ( QS_BOOKMARKS . MEDIAN3_swap_A_idx_mid_with_A_idx_right_minus_1 , mid , right - 1 ) ;
407
409
408
410
// pivot <- A[right - 1]
409
- pivot_index = right - 1
411
+ pivot_index = right - 1 ;
410
412
chunker_add_if ( QS_BOOKMARKS . MEDIAN3_set_pivot_to_value_at_array_indx_right_minus_1 ,
411
413
( vis , cur_right , cur_left , cur_real_stack , cur_finished_stack_frames , cur_i , cur_j , cur_pivot_index , cur_depth ) => {
412
414
unhighlight ( vis , cur_right , false ) ;
413
415
unhighlight ( vis , cur_right - 1 , false ) ;
414
- unhighlight ( vis , cur_left , false ) ;
416
+ // unhighlight seems to decrement counter rather than unset flag
417
+ if ( cur_left !== cur_right - 1 )
418
+ unhighlight ( vis , cur_left , false ) ;
415
419
416
420
refresh_stack ( vis , cur_real_stack , cur_finished_stack_frames , cur_i , cur_j , cur_pivot_index , cur_depth ) // refresh stack to show pivot_index
417
421
} ,
0 commit comments