#include "sortutils.hpp" #include #include #include const int MIN_DIST = static_cast(-1e+7); const int MAX_DIST = static_cast(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 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; }