Advertisement
Guest User

Untitled

a guest
Feb 28th, 2020
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.55 KB | None | 0 0
  1. #include<iostream>
  2. #include<vector>
  3. #include<chrono>
  4. #include<random>
  5. using namespace std;
  6.  
  7. size_t partition_j(vector<unsigned>& a, size_t lo, size_t hi);
  8. size_t partition_w(vector<unsigned>& a, size_t lo, size_t hi);
  9. size_t partition_k(vector<unsigned>& a, size_t lo, size_t hi);
  10.  
  11. int main(int argc, char* argv[])
  12. {
  13. // Check if an argument was passed
  14. if (argc != 2)
  15. {
  16. cerr << "Usage: " << argv[0] <<
  17. " n where n is the number of values" << endl;
  18. return 1;
  19. }
  20.  
  21. // Create a random number generator
  22. size_t number_of_values {static_cast<size_t>(stoul(argv[1]))};
  23. const unsigned MAX_RANDOM_VALUE = 1000000;
  24. default_random_engine get_next_value
  25. (static_cast <unsigned>
  26. (chrono::system_clock::now().time_since_epoch().count()));
  27. uniform_int_distribution<unsigned> uniform(0, MAX_RANDOM_VALUE);
  28.  
  29. // Create two indentical vectors of size n
  30. vector<unsigned> v1;
  31. vector<unsigned> v2;
  32. vector<unsigned> v3;
  33. for(size_t i = 0; i < number_of_values; i++)
  34. {
  35. unsigned random_value = uniform(get_next_value);
  36. v1.push_back(random_value);
  37. v2.push_back(random_value);
  38. v3.push_back(random_value);
  39. }
  40.  
  41. // Run all versions and print how many operations the did
  42. cout << number_of_values << " ";
  43. size_t dummy1 = partition_j(v1, 0, static_cast<size_t>(number_of_values - 1));
  44. cout << " ";
  45. size_t dummy2 = partition_w(v2, 0, static_cast<size_t>(number_of_values - 1));
  46. cout << " ";
  47. size_t dummy3 = partition_k(v3, 0, static_cast<size_t>(number_of_values - 1));
  48. cout << endl;
  49. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement