File tree 1 file changed +55
-0
lines changed
1 file changed +55
-0
lines changed Original file line number Diff line number Diff line change
1
+ #include " algorithm-visualizer.h"
2
+
3
+ #define N 15
4
+ #define MIN 1
5
+ #define MAX 20
6
+
7
+ void BubbleSort (int start, int end, int array[]);
8
+
9
+ ChartTracer chartTracer (" Chart" );
10
+
11
+ int main () {
12
+ int array[N];
13
+ Randomize::Array1D<int >(N, *(new Randomize::Integer (MIN, MAX))).fill (&array[0 ]);
14
+ chartTracer.set (array);
15
+ Layout::setRoot (VerticalLayout ({ chartTracer }));
16
+
17
+ BubbleSort (0 , N - 1 , array);
18
+
19
+ return 0 ;
20
+ }
21
+
22
+ void BubbleSort (int start, int end, int array[])
23
+ {
24
+ chartTracer.select (end);
25
+
26
+ int newEnd = start;
27
+ for (int i = start; i < end; ++i)
28
+ {
29
+ chartTracer.select (i);
30
+ chartTracer.select (i + 1 );
31
+ Tracer::delay ();
32
+ if (array[i] > array[i + 1 ])
33
+ {
34
+ std::swap (array[i], array[i + 1 ]);
35
+ chartTracer.patch (i, array[i]);
36
+ chartTracer.patch (i + 1 , array[i + 1 ]);
37
+ Tracer::delay ();
38
+ chartTracer.depatch (i);
39
+ chartTracer.depatch (i + 1 );
40
+ newEnd = i;
41
+ }
42
+
43
+ chartTracer.deselect (i);
44
+ chartTracer.deselect (i + 1 );
45
+ }
46
+
47
+ if (newEnd == start)
48
+ {
49
+ return ;
50
+ }
51
+ else
52
+ {
53
+ BubbleSort (start, newEnd, array);
54
+ }
55
+ }
You can’t perform that action at this time.
0 commit comments