Sorting Algorithm Visualizer
Sorting Algorithm Visualizer
Setup
Install SFML
Download and install SFML
Set up in the development environment (IDE or makefile)
Project Structure
main.cpp
Visualizer.h & Visualizer.cpp
SortingAlgorithms.h & SortingAlgorithms.cpp
Visualizer Class
Attributes
RenderWindow
Vector for array
Dimensions (windowWidth, windowHeight, barWidth)
Methods
generateRandomArray()
renderArray()
visualizeSort(void(*sortAlgorithm)(std::vector<int>&, Visualizer&))
highlightBars(int idx1, int idx2, sf::Color color1, sf::Color color2)
resetBars(int idx1, int idx2)
Sorting Algorithms
Header File
SortingAlgorithms.h
Implementations
Bubble Sort
Logic for comparison and swapping
Visualization with highlights and delays
Insertion Sort
Logic for insertion and movement
Visualization with highlights and delays
Quick Sort
Partitioning logic
Visualization with highlights and delays
Main Loop
Initialization
Create Visualizer instance
Set window dimensions and array size
Event Handling
Handle window events (closing, resizing)
Start sorting on key press (e.g., spacebar)
Rendering
Continuous rendering of the array
Compilation and Execution
Linux/Command Line
Compilation command
Execution command
IDE Setup
Link SFML libraries
Configure project settings
Additional Features (Optional)
Speed Control
Implement slider to adjust sorting speed
Pause/Resume Functionality
Implement key events for pause and resume
UI Enhancements
Create buttons for different algorithms
Add text displays for algorithm status