Skip to content

Latest commit

 

History

History
64 lines (56 loc) · 2.75 KB

File metadata and controls

64 lines (56 loc) · 2.75 KB

Algorithm Visualizer

This is a sorting algorithm visualizer written in C++ using OpenGL. I learned a lot through this project whether it be setting up a C++ environment, installing 3rd party dependencies, or safe pointer practices.

The GIF above displays the following sorting 50 random numbers (1-100)

  1. Bubble Sort
    • Average speed: O( n^2 )
    • Average memory: O( 1 )
  2. Merge Sort
    • Average speed: O( n logn )
    • Average memory: O( n )
  3. Quick Sort O( n logn )
    • Average speed: O( n logn )
    • Average memory: O( logn )

Of the three, quick sort is often seen as the best because it is more practical with it requiring less memory and having a better cache performance. Merge sort is prefered when stability is needed.

Things to note

Example build file for VS Code

{
	"version": "2.0.0",
	"tasks": [
        {
            "type": "cppbuild",
            "label": "C/C++: clang++ build active file",
            "command": "/usr/bin/clang++",
            "args": [
                "-std=c++17",
                "-fcolor-diagnostics",
                "-fansi-escape-codes",
                "-Wall",
                "-g",
                "-I${workspaceFolder}/dependencies/include",
                "-I${workspaceFolder}/dependencies/library",
                "${workspaceFolder}/src/*.cpp",
                "${workspaceFolder}/src/algorithms/*.cpp",
                "${workspaceFolder}/dependencies/library/libglfw.3.4.dylib",
                "-o",
                "${workspaceFolder}/app",
                "-framework",
                "OpenGL"
            ],
            "options": {
                "cwd": "${fileDirname}"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "detail": "compiler: /usr/bin/clang++"
        }
    ]
}