add raw files
This commit is contained in:
@@ -0,0 +1,53 @@
|
||||
#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;
|
||||
}
|
||||
Reference in New Issue
Block a user