1- import { Array1DTracer , Array2DTracer , LogTracer , Tracer } from 'algorithm-visualizer' ;
1+ import { Array1DTracer , Array2DTracer , LogTracer } from 'algorithm-visualizer' ;
22
33const string1 = 'AGGTAB' ;
44const string2 = 'GXTXAYB' ;
@@ -12,42 +12,42 @@ for (let i = 0; i < m + 1; i++) {
1212const tracer1 = new Array1DTracer ( 'String 1' ) . set ( string1 ) ;
1313const tracer2 = new Array1DTracer ( 'String 2' ) . set ( string2 ) ;
1414const tracer3 = new Array2DTracer ( 'Memo Table' ) . set ( A ) ;
15- const logger = new LogTracer ( ) ;
15+ const logger = new LogTracer ( ) . wait ( ) ;
1616
17- let i ,
18- j ;
17+ let i ;
18+ let j ;
1919
2020// Build the memo table in bottom up fashion
2121for ( i = 0 ; i <= m ; i ++ ) {
22- for ( j = 0 ; j <= n ; j ++ ) {
23- if ( i === 0 || j === 0 ) {
24- A [ i ] [ j ] = 0 ;
25- } else if ( string1 [ i - 1 ] === string2 [ j - 1 ] ) {
26- tracer1 . select ( i - 1 ) . wait ( ) ;
27- tracer2 . select ( j - 1 ) . wait ( ) ;
28- tracer3 . select ( i - 1 , j - 1 ) . wait ( ) ;
22+ for ( j = 0 ; j <= n ; j ++ ) {
23+ if ( i === 0 || j === 0 ) {
24+ A [ i ] [ j ] = 0 ;
25+ } else if ( string1 [ i - 1 ] === string2 [ j - 1 ] ) {
26+ tracer1 . select ( i - 1 ) . wait ( ) ;
27+ tracer2 . select ( j - 1 ) . wait ( ) ;
28+ tracer3 . select ( i - 1 , j - 1 ) . wait ( ) ;
2929
30- A [ i ] [ j ] = A [ i - 1 ] [ j - 1 ] + 1 ;
30+ A [ i ] [ j ] = A [ i - 1 ] [ j - 1 ] + 1 ;
3131
32- tracer1 . deselect ( i - 1 ) ;
33- tracer2 . deselect ( j - 1 ) ;
34- tracer3 . deselect ( i - 1 , j - 1 ) ;
35- } else {
36- tracer3 . select ( i - 1 , j ) . wait ( ) ;
37- tracer3 . select ( i , j - 1 ) . wait ( ) ;
32+ tracer1 . deselect ( i - 1 ) ;
33+ tracer2 . deselect ( j - 1 ) ;
34+ tracer3 . deselect ( i - 1 , j - 1 ) ;
35+ } else {
36+ tracer3 . select ( i - 1 , j ) . wait ( ) ;
37+ tracer3 . select ( i , j - 1 ) . wait ( ) ;
3838
39- if ( A [ i - 1 ] [ j ] > A [ i ] [ j - 1 ] ) {
40- A [ i ] [ j ] = A [ i - 1 ] [ j ] ;
41- } else {
42- A [ i ] [ j ] = A [ i ] [ j - 1 ] ;
43- }
39+ if ( A [ i - 1 ] [ j ] > A [ i ] [ j - 1 ] ) {
40+ A [ i ] [ j ] = A [ i - 1 ] [ j ] ;
41+ } else {
42+ A [ i ] [ j ] = A [ i ] [ j - 1 ] ;
43+ }
4444
45- tracer3 . deselect ( i - 1 , j ) ;
46- tracer3 . deselect ( i , j - 1 ) ;
47- }
48- tracer3 . notify ( i , j , A [ i ] [ j ] ) . wait ( ) ;
49- tracer3 . denotify ( i , j ) ;
50- }
45+ tracer3 . deselect ( i - 1 , j ) ;
46+ tracer3 . deselect ( i , j - 1 ) ;
47+ }
48+ tracer3 . notify ( i , j , A [ i ] [ j ] ) . wait ( ) ;
49+ tracer3 . denotify ( i , j ) ;
50+ }
5151}
5252
5353let finalString = '' ;
@@ -57,7 +57,7 @@ while (i >= 1 && j >= 1) {
5757 tracer3 . select ( i , j ) . wait ( ) ;
5858 if ( string1 [ i - 1 ] === string2 [ j - 1 ] ) {
5959 tracer1 . select ( i - 1 ) . wait ( ) ;
60- tracer2 . select ( j - 1 ) . wait ( ) ;
60+ tracer2 . select ( j - 1 ) . wait ( ) ;
6161
6262 finalString = string1 [ i - 1 ] + finalString ;
6363 i -- ;
0 commit comments