Files
messy-codepile/main.cpp
T

54 lines
1.2 KiB
C++
Raw Normal View History

2026-06-09 02:22:28 +08:00
#include <cstdio>
#include <memory>
#include <random>
#include <vector>
#include "sort/sort.hpp"
template <typename Iter>
void shuffling(Iter first, Iter last) {
static std::random_device rd;
static std::mt19937_64 mt_rd(rd());
size_t length = last - first;
for (int i = length - 1; i > 0; --i) {
int index = std::uniform_int_distribution(0, i)(mt_rd);
std::swap(*(first + index), *(last - 1));
--last;
}
}
int main(int argc, char* argv[]) {
int list_size = 256;
if (argc > 1) {
sscanf(argv[1], "%d", &list_size);
}
std::vector<int> list(list_size);
for (int i = 0; i < list_size; ++i) {
list.at(i) = i + 1;
}
shuffling(list.begin(), list.end());
printf("Pre-sorting:\n");
const char* endline = " \n";
int max_len = snprintf(nullptr, 0, "%d", list_size);
for (int i = 0; i < list_size; ++i) {
printf("%*d%c", max_len, list.at(i), endline[(i + 1) % 16 == 0]);
}
isort(list.begin(), list.end());
printf("\nPost-sorting:\n");
for (int i = 0; i < list_size; ++i) {
printf("%*d%c", max_len, list.at(i), endline[(i + 1) % 16 == 0]);
}
return 0;
}