fork(3) download
  1. #include <iostream>
  2. #include <cstdlib>
  3. #include <fstream>
  4. #include <ctime>
  5. #include <cstring>
  6.  
  7. const int N = 10000000;
  8. using namespace std;
  9.  
  10. void generate(int *tab, int N)
  11. {
  12. for (int i = 0; i < N; i++)
  13. {
  14. *tab = rand() % 100 + 1;
  15. tab++;
  16. }
  17. }
  18.  
  19. void minMax_optimalized(int *x, int N)
  20. {
  21. int max=x[0], min=x[0];
  22. int temp;
  23. for (int i = 0; i < N; i+=2)
  24. {
  25. if (x[i + 1] > x[i])
  26. {
  27. temp = x[i];
  28. x[i] = x[i + 1];
  29. x[i + 1] = temp;
  30. }
  31. }
  32. for (int i = 0; i < N; i+=2)
  33. {
  34. if (max < x[i])
  35. max = x[i];
  36. if (min > x[i+1])
  37. min = x[i+1];
  38. }
  39. cout << "Max: " << max << endl << "Min: " << min << endl;
  40. }
  41.  
  42. void minMax(int *x, int N)
  43. {
  44. int min = x[0], max = x[0];
  45. for (int i = 0; i < N; i++)
  46. {
  47. if (max < x[i])
  48. max = x[i];
  49. if (min > x[i])
  50. min = x[i];
  51. }
  52. cout << "Max: " << max << endl << "Min: " << min << endl;
  53. }
  54.  
  55.  
  56. int main()
  57. {
  58. srand(time(NULL));
  59. int data[N];
  60. generate(data,N);
  61. clock_t begin = clock();
  62. minMax_optimalized(data, N);
  63. clock_t end = clock();
  64. cout<<"Time optimized: "<< double(end - begin) / CLOCKS_PER_SEC<<endl;
  65. begin = clock();
  66. minMax(data, N);
  67. end = clock();
  68. cout << "Time : " << double(end - begin) / CLOCKS_PER_SEC;
  69. getchar();
  70. return 0;
  71. }
  72.  
  73.  
Success #stdin #stdout 0.09s 55008KB
stdin
Standard input is empty
stdout
Max: 100
Min: 1
Time optimized: 0.023262
Max: 100
Min: 1
Time : 0.006125