Welcome to our Analysis of Sorting Algorithms project! This project was designed to generate the runtime data for different sorts, which would then be used to evaluate different sorting algorithms based on their efficiency in various cases. The findings have already been analyzed and the report/raw data has been included as deliverables in the deliverables section below. If you wish to perform your own analysis on the various sorts, this repository is a good starting point.
Completed on 29th November 2020, and updated on GitHub on 12th October 2023 to be archived.
- Ensure that DevC++ is installed. Alternative compilers can be used, but the .dev file was produced in DevC++ and can be opened directly.
- Open the .dev file in DevC++.
- Customize the sorting parameters within the main function for each type of dataset growth.
- Compile and run.
The following is a list of sorts that are implemented for analysis:
- Selection Sort
- Bubble Sort
- Insertion Sort
- Merge Sort (multiple)
- Quick Sort (multiple)
- Heap Sort
- Radix Sort
The following sample shows the performance of the algorithms for exponentially growing datasets.
The following resources were used for information in the production of the project/report:
- Computing Bubble Sort Time Complexity by Subham Datta, 2020
- Quicksort Worst Case Time Complexity by Subham Datta, 2020
- Analysis of Different Sorting Techniques by GeekforGeeks, 2019
- Comparison among Bubble Sort, Selection Sort and Insertion Sort by GeekforGeeks, 2020
- Quick Sort vs Merge Sort by GeekforGeeks, 2019
- Radix Sort by GeekforGeeks, 2020
- Analysis of Insertion Sort by Khan Academy, 2014
- Comparison of several sorting algorithms: Integers by Juha Nieminen, n.d.
- Quicksort vs Heapsort by S. J. Ryu, 2017
- Comparison of Sorting Algorithms by Tusamma Sal Sabil, 2019
- Merge Sort Algorithm by Study Tonight, n.d.