Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <chrono>
- #include <thread>
- #include <random>
- #include <iostream>
- int losowa_liczba(int min = 0, int max = std::numeric_limits<int>::max())
- {
- static std::default_random_engine gen(std::random_device{}());
- static std::uniform_int_distribution<int> dist;
- return dist(gen, std::uniform_int_distribution<int>::param_type{ min, max });
- }
- void hash_al_wstaw(int m, int* M[], int x) {
- int poprzedni = x;
- for (int i = 0; i < m - 1; i++) {
- k = (poprzedni + i) % m;
- if (M[k] == -1) {
- M[k] = x;
- return true;
- }
- } return false;
- }
- int main() {
- rozmiar_M = 1000000;
- int* M = new int[rozmiar_M];
- for (int i = 0; i < Rozmiar_M + 1; i++) M[i] = -1;
- rozmiar_L = 100000;
- int *L = new int[rozmiar_L];
- for (int i = 0; i < Rozmiar_L + 1; i++) L[i] = losowa_liczba();
- int licznik = 1;
- while (licznik <= 10) {
- auto start = std::chrono::high_resolution_clock::now();
- for (int l = (licznik - 1) * 10000; l < (licznik * 10000); i++) hash_al_wstaw(rozmiar_M, M, L[l]);
- auto end = std::chrono::high_resolution_clock::now();
- std::chrono::duration<double, std::micro> duration = end - start;
- cerr << "Uplynelo: " << duration.count() << "s\n";
- for (int d = ((licznik - 1) * 100000) + 10000; d < (licznik * 100000); d++) M[d] = losowa_liczba();
- licznik++;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement