From 2f19e94b0ce78d6ccc9eedbf04b8a3460fd05565 Mon Sep 17 00:00:00 2001 From: Sebastiano Tronto Date: Mon, 29 Apr 2024 21:59:51 +0200 Subject: Sort benchmarks --- sort-benchmark/pairs/sort.cpp | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 sort-benchmark/pairs/sort.cpp (limited to 'sort-benchmark/pairs/sort.cpp') diff --git a/sort-benchmark/pairs/sort.cpp b/sort-benchmark/pairs/sort.cpp new file mode 100644 index 0000000..77ab5f0 --- /dev/null +++ b/sort-benchmark/pairs/sort.cpp @@ -0,0 +1,32 @@ +#include +#include +#include +#include + +typedef struct { int a, b; } pair_t; +pair_t a[ARRAYSIZE]; + +int main(void) { + srand(time(NULL)); + for (auto &x : a) { + x.a = rand() % 1000000; + x.b = rand() % 1000000; + } + + struct timespec begin; + clock_gettime(CLOCK_MONOTONIC, &begin); + + std::sort(a, a+ARRAYSIZE, + [](const pair_t &x, const pair_t &y) { + int d = x.a - y.a; + return d < 0 || (d == 0 && x.b > y.b); + }); + + struct timespec end; + clock_gettime(CLOCK_MONOTONIC, &end); + double time = end.tv_sec - begin.tv_sec + + (end.tv_nsec - begin.tv_nsec) / 1000000000.0; + + std::cout << "(" << a[ARRAYSIZE/2].a << ") C++ time for " << ARRAYSIZE + << " pairs: " << time << "s\n"; +} -- cgit v1.3