annotate README.md @ 43:a809e4200185

Update README.md committer: GitHub <noreply@github.com>
author Dennis C. M. <dennis@denniscm.com>
date Wed, 02 Aug 2023 16:41:56 +0100
parents b7bcb0a65cd3
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
4
035d3880da04 render text with number of elements on screen
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
1 # algo-animator
035d3880da04 render text with number of elements on screen
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
2
40
50e6f49c32e8 Update README.md
Dennis C. M. <dennis@denniscm.com>
parents: 38
diff changeset
3 An interactive program to visualize sorting algorithms.
50e6f49c32e8 Update README.md
Dennis C. M. <dennis@denniscm.com>
parents: 38
diff changeset
4 I also made a video about this project [Youtube](https://youtu.be/KvOI88s-FsU)
31
61104b22a25d I think it is working now...
Dennis C. M. <dennis@denniscm.com>
parents: 28
diff changeset
5
61104b22a25d I think it is working now...
Dennis C. M. <dennis@denniscm.com>
parents: 28
diff changeset
6 This project is inspired by - off course - the video by Timo Bingmann called
61104b22a25d I think it is working now...
Dennis C. M. <dennis@denniscm.com>
parents: 28
diff changeset
7 [15 sorting algorithms in 6 minutes](https://www.youtube.com/watch?v=kPRA0W1kECg).
21
8a5a7aee69ce add description
Dennis C. M. <dennis@denniscm.com>
parents: 13
diff changeset
8
42
b7bcb0a65cd3 Update README.md
Dennis C. M. <dennis@denniscm.com>
parents: 40
diff changeset
9 ![1](https://github.com/denniscmartin/algo-animator/assets/66180929/cf3396f6-2e66-4949-b7bd-2ba0ac4b8529)
b7bcb0a65cd3 Update README.md
Dennis C. M. <dennis@denniscm.com>
parents: 40
diff changeset
10 ![2](https://github.com/denniscmartin/algo-animator/assets/66180929/14b4fe88-489e-4dcd-af3c-faa1f941ed9b)
31
61104b22a25d I think it is working now...
Dennis C. M. <dennis@denniscm.com>
parents: 28
diff changeset
11
21
8a5a7aee69ce add description
Dennis C. M. <dennis@denniscm.com>
parents: 13
diff changeset
12 ## Compile
8a5a7aee69ce add description
Dennis C. M. <dennis@denniscm.com>
parents: 13
diff changeset
13
4
035d3880da04 render text with number of elements on screen
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
14 ```bash
28
99592fae8ea1 add instructions
Dennis C. M. <dennis@denniscm.com>
parents: 26
diff changeset
15 mkdir build
99592fae8ea1 add instructions
Dennis C. M. <dennis@denniscm.com>
parents: 26
diff changeset
16 cd build
99592fae8ea1 add instructions
Dennis C. M. <dennis@denniscm.com>
parents: 26
diff changeset
17 cmake ..
99592fae8ea1 add instructions
Dennis C. M. <dennis@denniscm.com>
parents: 26
diff changeset
18 make
32
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
19 ```
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
20
33
576431310c8a fix format
Dennis C. M. <dennis@denniscm.com>
parents: 32
diff changeset
21 *Currently I've only tested this project on Linux. However, I would like to prepare it so
32
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
22 that it can be used on Mac and Windows. However, my cross-platform experience is almost
33
576431310c8a fix format
Dennis C. M. <dennis@denniscm.com>
parents: 32
diff changeset
23 non-existent. Maybe in the future I'll check how to do it*
32
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
24
33
576431310c8a fix format
Dennis C. M. <dennis@denniscm.com>
parents: 32
diff changeset
25 ## Run
32
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
26
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
27 To customize the program you can pass the following arguments.
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
28
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
29 ```bash
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
30 ./algo_animator WINDOW_WIDTH WINDOW_HEIGHT RECTANGLE_WIDTH SPACE_BETWEEN_RECTANGLES
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
31 ```
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
32
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
33 The default values are:
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
34
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
35 ```bash
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
36 WINDOW_WIDTH = 1920
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
37 WINDOW_HEIGHT = 1080
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
38 RECTANGLE_WIDTH = 5
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
39 SPACE_BETWEEN_RECTANGLES = 1
4
035d3880da04 render text with number of elements on screen
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
40 ```
32
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
41
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
42 Run the program in a window with width of 1920 pixels and height of 1080 pixels,
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
43 fit the screen with rectangles with width of 50 pixels, and add a space between
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
44 rectangles of 3 pixels.
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
45
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
46 ```bash
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
47 ./algo_animator 1920 1080 50 3
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
48 ```
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
49
33
576431310c8a fix format
Dennis C. M. <dennis@denniscm.com>
parents: 32
diff changeset
50 ## Examples
32
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
51
33
576431310c8a fix format
Dennis C. M. <dennis@denniscm.com>
parents: 32
diff changeset
52 ### Normal mode
32
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
53
36
8425cf9337aa add videos
Dennis C. M. <dennis@denniscm.com>
parents: 35
diff changeset
54 Just run the program and press `ENTER`
8425cf9337aa add videos
Dennis C. M. <dennis@denniscm.com>
parents: 35
diff changeset
55 [Video.webm](https://github.com/denniscmartin/algo-animator/assets/66180929/f75366b4-b8ba-421e-8c1e-f43727a67b4f)
32
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
56
33
576431310c8a fix format
Dennis C. M. <dennis@denniscm.com>
parents: 32
diff changeset
57 ### Slow motion
32
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
58
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
59 Use `u` to increase the delay, then `ENTER` to run the algorithm
36
8425cf9337aa add videos
Dennis C. M. <dennis@denniscm.com>
parents: 35
diff changeset
60 *The delay is applied after each iteration*
37
0e2121235413 update readme
Dennis C. M. <dennis@denniscm.com>
parents: 36
diff changeset
61 [Video.webm](https://github.com/denniscmartin/algo-animator/assets/66180929/b3bcde87-2680-4667-98be-3b3946712254)
32
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
62
33
576431310c8a fix format
Dennis C. M. <dennis@denniscm.com>
parents: 32
diff changeset
63 ### Pause mode
32
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
64
36
8425cf9337aa add videos
Dennis C. M. <dennis@denniscm.com>
parents: 35
diff changeset
65 Press `ENTER` then `p`
37
0e2121235413 update readme
Dennis C. M. <dennis@denniscm.com>
parents: 36
diff changeset
66 [Video.webm](https://github.com/denniscmartin/algo-animator/assets/66180929/6a3ff80c-56dc-4b1a-a811-e3649fe2edde)
32
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
67
33
576431310c8a fix format
Dennis C. M. <dennis@denniscm.com>
parents: 32
diff changeset
68 ### Sequential mode
32
b1a605eb721a accept user inputs
Dennis C. M. <dennis@denniscm.com>
parents: 31
diff changeset
69
36
8425cf9337aa add videos
Dennis C. M. <dennis@denniscm.com>
parents: 35
diff changeset
70 Press `q` then press `ENTER` to visualize the algorithm step by step.
37
0e2121235413 update readme
Dennis C. M. <dennis@denniscm.com>
parents: 36
diff changeset
71 [Video.webm](https://github.com/denniscmartin/algo-animator/assets/66180929/743c00d8-5236-437d-85ad-b139611175ef)
36
8425cf9337aa add videos
Dennis C. M. <dennis@denniscm.com>
parents: 35
diff changeset
72
38
8ed1256dd518 finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents: 37
diff changeset
73 ## Notes
8ed1256dd518 finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents: 37
diff changeset
74
8ed1256dd518 finish quick sort and add insertion sort
Dennis C. M. <dennis@denniscm.com>
parents: 37
diff changeset
75 This project has not been designed to compare the speed of the algorithms side by side. The main objective is the visualization of the algorithms for educational purposes.