Advertisement
Guest User

Untitled

a guest
Apr 25th, 2018
50
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.31 KB | None | 0 0
  1. #include <chrono>
  2. #include <thread>
  3. #include <random>
  4. #include <iostream>
  5.  
  6.  
  7. int losowa_liczba(int min = 0, int max = std::numeric_limits<int>::max())
  8. {
  9. static std::default_random_engine gen(std::random_device{}());
  10. static std::uniform_int_distribution<int> dist;
  11. return dist(gen, std::uniform_int_distribution<int>::param_type{ min, max });
  12. }
  13.  
  14. void hash_al_wstaw(int m, int* M[], int x) {
  15. int poprzedni = x;
  16. for (int i = 0; i < m - 1; i++) {
  17. k = (poprzedni + i) % m;
  18. if (M[k] == -1) {
  19. M[k] = x;
  20. return true;
  21. }
  22. } return false;
  23. }
  24. int main() {
  25.  
  26. rozmiar_M = 1000000;
  27. int* M = new int[rozmiar_M];
  28.  
  29. for (int i = 0; i < Rozmiar_M + 1; i++) M[i] = -1;
  30.  
  31. rozmiar_L = 100000;
  32. int *L = new int[rozmiar_L];
  33.  
  34. for (int i = 0; i < Rozmiar_L + 1; i++) L[i] = losowa_liczba();
  35.  
  36. int licznik = 1;
  37.  
  38. while (licznik <= 10) {
  39. auto start = std::chrono::high_resolution_clock::now();
  40. for (int l = (licznik - 1) * 10000; l < (licznik * 10000); i++) hash_al_wstaw(rozmiar_M, M, L[l]);
  41. auto end = std::chrono::high_resolution_clock::now();
  42. std::chrono::duration<double, std::micro> duration = end - start;
  43. cerr << "Uplynelo: " << duration.count() << "s\n";
  44.  
  45. for (int d = ((licznik - 1) * 100000) + 10000; d < (licznik * 100000); d++) M[d] = losowa_liczba();
  46.  
  47. licznik++;
  48. }
  49.  
  50.  
  51. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement