forked from algorithm-visualizer/algorithm-visualizer
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcode.js
More file actions
30 lines (28 loc) · 929 Bytes
/
code.js
File metadata and controls
30 lines (28 loc) · 929 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
logger._print('Original array = [' + D.join(', ') + ']');
var N = D.length;
for (var gap = N; gap = parseInt(gap / 2);) {
logger._print('');
logger._print('Gap of ' + gap);
for (var i = gap; i < N; i++) {
tracer._select(i)._select(i - gap)._wait();
var k = D[i];
logger._print('Holding: ' + k)
for (var j = i; j >= gap && k < D[j - gap]; j -= gap) {
logger._print(k + ' < ' + D[j - gap]);
D[j] = D[j - gap];
tracer._notify(j, D[j])._wait();
tracer._denotify(j);
}
var old = D[j];
D[j] = k;
if (old != k) {
tracer._notify(j,D[j])._wait();
tracer._denotify(j);
logger._print('Swapped ' + D[j] + ' with ' + old);
}
tracer._deselect(i)._deselect(i - gap);
}
}
tracer._clear();
logger._print('')
logger._print('Sorted array = [' + D.join(', ') + ']');