DSA-Assignments

Log | Files | Refs | README

commit 56a9cad1e5fac07c7d27598ec8131d1af83735fc
parent 30f7cd352de09817f47868be914fa9944d75b23a
Author: William Lindholm <william_lindholm@outlook.com>
Date:   Thu,  7 Dec 2023 22:30:40 +0100

Added ability to measure maximum integer size separatley.

Diffstat:
MProblem1/Problem1.cpp | 33++++++++++++++++++++-------------
1 file changed, 20 insertions(+), 13 deletions(-)

diff --git a/Problem1/Problem1.cpp b/Problem1/Problem1.cpp @@ -24,35 +24,42 @@ string vectorToString(vector<int> vector); int findMax(vector<int> v); vector<int> generateRandomVector(int low, int high, int size); void showProgressBar(int width, double progress); -void printuple(tuple<int, double> t); +void printuple(tuple<int, int, double> t); int main() { + int startingSize = 1000; int iterations = 100; + int arraySize = 10000; + int stepSize = 1000; srand(12345); - vector<tuple<int, double>> durations; + vector<tuple<int, int, double>> durations; - for (int i = 1; i < iterations + 1; i++) { + for (int i = startingSize; i < arraySize; i += stepSize) { + cout << "\nArray element max value: " << i << endl; + for (int j = 1; j < iterations + 1; j++) { - showProgressBar(100, (double)i / iterations); + showProgressBar(100, (double)j / iterations); - vector<int> unsorted = generateRandomVector(0, 999999, i * 1000); + vector<int> unsorted = generateRandomVector(0, i, j * 1000); - auto start = chrono::high_resolution_clock::now(); + auto start = chrono::high_resolution_clock::now(); - vector<int> sorted = bucketSort(unsorted); + vector<int> sorted = insertionSort(unsorted); - auto end = chrono::high_resolution_clock::now(); + auto end = chrono::high_resolution_clock::now(); - chrono::duration<double> elapsed = end - start; + chrono::duration<double> elapsed = end - start; - durations.push_back(make_tuple(i * 1000, elapsed.count())); + durations.push_back(make_tuple(i, j * 1000, elapsed.count())); + } } + cout << endl; - for (auto t : durations) { + for (tuple<int, int, double> t : durations) { printuple(t); } @@ -208,6 +215,6 @@ void showProgressBar(int width, double progress) { cout.flush(); // Important to flush the output } -void printuple(tuple<int, double> t) { - cout << get<0>(t) << "\t" << get<1>(t) << endl; +void printuple(tuple<int, int, double> t) { + cout << get<0>(t) << ", " << get<1>(t) << ", " << get<2>(t) << endl; } \ No newline at end of file