This project implements and compares both Merge Sort and Quick Sort algorithms in both sequential and parallel versions using C++. The parallel implementations leverage multithreading to significantly accelerate sorting performance for large datasets. A web-based visualization interface is provided to demonstrate the algorithms in action and compare their performance metrics.
"Algorithm Implementations" Merge Sort (Sequential) - Traditional divide and conquer approach Parallel Merge Sort - Multithreaded implementation with threshold optimization Quick Sort (Sequential) - In-place partitioning algorithm Parallel Quick Sort - Concurrent partitioning and recursive sorting
Thread Management: Efficient thread creation and synchronization Threshold Switching: Automatic fallback to std::sort for small subarrays (size < 5000) Load Balancing: Parallel execution of independent subproblems
Real-time Sorting Animation: Visual representation of sorting process Performance Metrics: Execution time comparison across all algorithms Thread Activity Monitoring: Real-time thread utilization tracking Interactive Charts: Bar charts for time comparison and speedup analysis
- C++ Compiler with C++11 support (g++, clang++)
- Web Browser with JavaScript support (Chrome, Firefox, Safari)