「🏗️」 wip(ex02 code kinda done ? just have to make it readable before push i suppose): work in progress, not done yet.
This commit is contained in:
77
ex02/main.cpp
Normal file
77
ex02/main.cpp
Normal file
@@ -0,0 +1,77 @@
|
||||
#include "PmergeMe.hpp"
|
||||
|
||||
bool isPositiveInteger(const std::string &s) {
|
||||
if (s.empty()) return false;
|
||||
for (size_t i = 0; i < s.size(); i++) {
|
||||
if (!isdigit(s[i])) return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
if (argc < 2) {
|
||||
std::cerr << "Error" << std::endl;
|
||||
return 1;
|
||||
}
|
||||
|
||||
std::vector<int> vec;
|
||||
std::deque<int> deq;
|
||||
|
||||
for (int i = 1; i < argc; ++i)
|
||||
{
|
||||
std::string arg(argv[i]);
|
||||
if (!isPositiveInteger(arg)) {
|
||||
std::cerr << "Error" << std::endl;
|
||||
return 1;
|
||||
}
|
||||
std::istringstream iss(arg);
|
||||
long num;
|
||||
iss >> num;
|
||||
if (num < 0 || num > INT_MAX) {
|
||||
std::cerr << "Error" << std::endl;
|
||||
return 1;
|
||||
}
|
||||
vec.push_back(static_cast<int>(num));
|
||||
deq.push_back(static_cast<int>(num));
|
||||
}
|
||||
|
||||
// Print before
|
||||
std::cout << "Before: ";
|
||||
for (size_t i = 0; i < vec.size() && i < 6; i++)
|
||||
std::cout << vec[i] << " ";
|
||||
|
||||
if (vec.size() > 6)
|
||||
std::cout << "[...]";
|
||||
std::cout << std::endl;
|
||||
|
||||
// Sort vector
|
||||
clock_t startVec = clock();
|
||||
vec = fordJohnsonSort(vec);
|
||||
clock_t endVec = clock();
|
||||
|
||||
// Sort deque
|
||||
clock_t startDeq = clock();
|
||||
deq = fordJohnsonSort(deq);
|
||||
clock_t endDeq = clock();
|
||||
|
||||
// Print after
|
||||
std::cout << "After: ";
|
||||
for (size_t i = 0; i < vec.size() && i < 6; i++)
|
||||
std::cout << vec[i] << " ";
|
||||
|
||||
if (vec.size() > 6)
|
||||
std::cout << "[...]";
|
||||
std::cout << std::endl;
|
||||
|
||||
double vecTime = (double)(endVec - startVec) / CLOCKS_PER_SEC * 1e6;
|
||||
double deqTime = (double)(endDeq - startDeq) / CLOCKS_PER_SEC * 1e6;
|
||||
|
||||
std::cout << "Time to process a range of " << vec.size()
|
||||
<< " elements with std::vector : " << vecTime << " us" << std::endl;
|
||||
|
||||
std::cout << "Time to process a range of " << deq.size()
|
||||
<< " elements with std::deque : " << deqTime << " us" << std::endl;
|
||||
|
||||
return 0;
|
||||
}
|
||||
Reference in New Issue
Block a user