Exercises_MarkusSchmidt/sheet1/E/main.cpp
Markus Schmidt d3aa42a3e0 Solutions
2025-10-21 19:36:38 +02:00

74 lines
1.5 KiB
C++

#include <iostream>
#include <vector>
#include <random>
#include <chrono>
#include <algorithm>
#include "timing.h"
#include <list>
using namespace std;
std::default_random_engine generator;
unsigned int randomInt(unsigned int n)
{
std::uniform_int_distribution<int> distribution(1,n);
return distribution(generator);
}
void insertVector(vector<unsigned int>& vec)
{
unsigned int n = vec.size();
unsigned int random;
for(unsigned int i = 0; i<n; i++)
{
random = randomInt(n);
vector<unsigned int>::iterator it = lower_bound(vec.begin(), vec.end(), random);
vec.insert(it, random);
}
}
void insertList(list<unsigned int>& l)
{
unsigned int n = l.size();
unsigned int random;
for(unsigned int i = 0; i<n; i++)
{
random = randomInt(n);
list<unsigned int>::iterator it = lower_bound(l.begin(), l.end(), random);
l.insert(it, random);
}
}
int main()
{
unsigned int n = 10000;
vector<unsigned int> vec = {};
list<unsigned int> l = {};
for(unsigned int i=1; i<=n; i++)
{
vec.push_back(i);
l.push_back(i);
}
tic();
insertVector(vec);
double vecTime = toc();
tic();
insertList(l);
double listTime = toc();
cout << is_sorted(vec.begin(), vec.end())<< endl;
cout << is_sorted(l.begin(), l.end())<< endl;
cout << "vector time: " << vecTime << endl;
cout << "list time: " << listTime << endl;
return 0;
}