Skip to content

Commit d252a9a

Browse files
committed
Fixing selection sort visualization problem
1 parent 473d64f commit d252a9a

File tree

2 files changed

+28
-3
lines changed

2 files changed

+28
-3
lines changed

algorithm/sorting/selection/basic/code.js

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,12 @@ for (var i = 0; i < D.length - 1; i++) {
55
var minJ = i;
66
tracer._select(i);
77
for (var j = i + 1; j < D.length; j++) {
8+
tracer._select(j);
89
if (D[j] < D[minJ]) {
9-
tracer._select(j);
10+
tracer._notify(j);
1011
minJ = j;
11-
tracer._deselect(j);
1212
}
13+
tracer._deselect(j);
1314
}
1415
if (minJ != i) {
1516
tracer._print('swap ' + D[i] + ' and ' + D[minJ]);
@@ -20,4 +21,4 @@ for (var i = 0; i < D.length - 1; i++) {
2021
}
2122
tracer._deselect(i);
2223
}
23-
tracer._print('sorted array = [' + D.join(', ') + ']');
24+
tracer._print('sorted array = [' + D.join(', ') + ']');
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
tracer._print('original array = [' + D.join(', ') + ']');
2+
tracer._sleep(1000);
3+
tracer._pace(500);
4+
for (var i = 0; i < D.length - 1; i++) {
5+
var minJ = i;
6+
tracer._select(i);
7+
for (var j = i + 1; j < D.length; j++) {
8+
tracer._select(j);
9+
if (D[j] < D[minJ]) {
10+
tracer.notify(j);
11+
minJ = j;
12+
}
13+
tracer._deselect(j);
14+
}
15+
if (minJ != i) {
16+
tracer._print('swap ' + D[i] + ' and ' + D[minJ]);
17+
var temp = D[i];
18+
D[i] = D[minJ];
19+
D[minJ] = temp;
20+
tracer._notify(i, minJ);
21+
}
22+
tracer._deselect(i);
23+
}
24+
tracer._print('sorted array = [' + D.join(', ') + ']');

0 commit comments

Comments
 (0)