File tree Expand file tree Collapse file tree 1 file changed +55
-0
lines changed Expand file tree Collapse file tree 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