diff options
| author | Elizabeth Alexander Hunt <me@liz.coffee> | 2026-07-02 11:55:17 -0700 |
|---|---|---|
| committer | Elizabeth Alexander Hunt <me@liz.coffee> | 2026-07-02 11:55:17 -0700 |
| commit | 6bf4b90c90f15f4ab60833bddf5b5756d1a6b1f6 (patch) | |
| tree | ed97e39ec77c5231ffd2c394493e68d00ddac5a4 /Homework/cs3460/array_perf/main.cpp | |
| download | misc-undergrad-main.tar.gz misc-undergrad-main.zip | |
Diffstat (limited to 'Homework/cs3460/array_perf/main.cpp')
| -rw-r--r-- | Homework/cs3460/array_perf/main.cpp | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/Homework/cs3460/array_perf/main.cpp b/Homework/cs3460/array_perf/main.cpp new file mode 100644 index 0000000..1441751 --- /dev/null +++ b/Homework/cs3460/array_perf/main.cpp @@ -0,0 +1,44 @@ +#include "sortutils.hpp" + +#include <algorithm> +#include <cmath> +#include <iostream> + +const int MIN_DIST = static_cast<int>(-1e+7); +const int MAX_DIST = static_cast<int>(1e+7); + +/** + * @param SourceArray source: the data to initialize with random elements + * @return void: set source's elements between MIN_DIST, MAX_DIST + */ +void randomizeArray(SourceArray& source) +{ + std::uniform_int_distribution<int> distribution(MIN_DIST, MAX_DIST); + std::default_random_engine generator; + std::generate(std::execution::par, source.begin(), source.end(), [&distribution, &generator]() { return distribution(generator); }); +} + +int main() +{ + SourceArray randomizedArray, sorted, reversed, organPipe, rotated; + + randomizeArray(randomizedArray); + + std::copy(randomizedArray.begin(), randomizedArray.end(), sorted.begin()); + std::sort(sorted.begin(), sorted.end()); + + std::copy(sorted.begin(), sorted.end(), reversed.begin()); + std::reverse(reversed.begin(), reversed.end()); + + std::copy(sorted.begin(), sorted.end(), organPipe.begin()); + organPipeStdArray(organPipe); + + std::copy(sorted.begin(), sorted.end(), rotated.begin()); + std::rotate(rotated.begin(), rotated.begin() + 1, rotated.end()); + + evaluateRawArray(randomizedArray, sorted, reversed, organPipe, rotated); + evaluateStdArray(randomizedArray, sorted, reversed, organPipe, rotated); + evaluateStdVector(randomizedArray, sorted, reversed, organPipe, rotated); + + return 0; +} |
