File tree Expand file tree Collapse file tree 1 file changed +11
-5
lines changed
algorithm/sorting/shell/basic Expand file tree Collapse file tree 1 file changed +11
-5
lines changed Original file line number Diff line number Diff line change @@ -7,15 +7,21 @@ for (var gap = N; gap = parseInt(gap / 2);) {
77 for ( var i = gap ; i < N ; i ++ ) {
88 tracer . _select ( i ) . _select ( i - gap ) . _wait ( ) ;
99 var k = D [ i ] ;
10+ logger . _print ( 'Holding: ' + k )
1011 for ( var j = i ; j >= gap && k < D [ j - gap ] ; j -= gap ) {
11- logger . _print ( 'Swap ' + D [ j ] + ' and ' + D [ j - gap ] ) ;
12- tracer . _notify ( j , D [ j ] ) . _notify ( j - gap , D [ j - gap ] ) . _wait ( ) ;
12+ logger . _print ( k + ' < ' + D [ j - gap ] ) ;
1313 D [ j ] = D [ j - gap ] ;
14- tracer . _denotify ( i - 1 ) . _denotify ( i ) ;
14+ tracer . _notify ( j , D [ j ] ) . _wait ( ) ;
15+ tracer . _denotify ( j ) ;
1516 }
17+ var old = D [ j ] ;
1618 D [ j ] = k ;
17- tracer . _notify ( j , D [ j ] ) ;
18- tracer . _denotify ( j ) ;
19+ if ( old != k ) {
20+ tracer . _notify ( j , D [ j ] ) . _wait ( ) ;
21+ tracer . _denotify ( j ) ;
22+ logger . _print ( 'Swapped ' + D [ j ] + ' with ' + old ) ;
23+ }
24+
1925 tracer . _deselect ( i ) . _deselect ( i - gap ) ;
2026 }
2127}
You can’t perform that action at this time.
0 commit comments