Advertisement
Guest User

Untitled

a guest
Dec 9th, 2019
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.00 KB | None | 0 0
  1. #include <iostream>
  2. #include <ctime>
  3. #include <stdlib.h>
  4. #include <conio.h>
  5. #include <Bits.h>
  6. #include <time.h>
  7. #include <chrono>
  8.  
  9.  
  10. using namespace std;
  11.  
  12. void minmax1(int A[], int &j, int &k, int &size )
  13. {
  14. int i;
  15. int n = size;
  16. j=0;
  17. for(i=1; i < n; i++)
  18. {
  19. if(A[i]>A[j])
  20. {
  21. j=i;
  22. }
  23. }
  24. k=0;
  25. for(i=1; i<n; i++)
  26. {
  27. if(A[i]<A[k])
  28. {
  29. k=i;
  30. }
  31. }
  32. }
  33.  
  34. void minmax2(int A[], int &j, int &k, int &size )
  35. {
  36. int n = size;
  37. int i;
  38. j = 0; k = 0;
  39. for(i=1; i<n; i++)
  40. if(A[i] > A[j])
  41. j = i;
  42. else if (A[i] < A[k])
  43. k = i;
  44. }
  45.  
  46. void minmax3(int A[], int &j, int &k, int &size )
  47. {
  48. int i,min,max;
  49. int n = size;
  50. if(A[0]>A[1])
  51. {
  52. k=1;
  53. j=0;
  54. }
  55. else
  56. {
  57. k=0;
  58. j=1;
  59. }
  60. i = 2;
  61. while(i<n-1)
  62. {
  63. if(A[i]<A[i+1])
  64. {
  65. min = i;
  66. max = i+1;
  67. }
  68. else
  69. {
  70. min = i+1;
  71. max = i;
  72. }
  73. if( A[min] < A[k] )
  74. {
  75. k = min;
  76. }
  77. if( A[max] > A[j] )
  78. {
  79. j = max;
  80. }
  81. i+=2;
  82. }
  83. if( i == n-1 )
  84. {
  85. if(A[n-1]<A[k])
  86. {
  87. k=n-1;
  88. }
  89. else
  90. {
  91. if(A[n-1]<A[k])
  92. {
  93. j=n-1;
  94. }
  95. }
  96. }
  97. }
  98.  
  99. int pot( int x, int y )
  100. {
  101. int potega=1;
  102. while(y!=0)
  103. {
  104. if( y%2 == 1 )
  105. {
  106. potega *=x;
  107. }
  108. y /= 2;
  109. x *= x;
  110. }
  111. return potega;
  112. }
  113.  
  114. void wybieranie( int A[], int size )
  115. {
  116. int k, x;
  117. int n = size;
  118. for( int i=0; i< n-1; i++ )
  119. {
  120. k=i;
  121. x=A[i];
  122. for( int j=i+1; j<n; j++ )
  123. {
  124. if(A[j]<x)
  125. {
  126. k=j;
  127. x=A[j];
  128. }
  129. A[k]=A[i];
  130. A[i]=x;
  131. }
  132. }
  133. }
  134.  
  135. int main()
  136. {
  137. srand(time(NULL));
  138. int *A;
  139. int j;
  140. int k;
  141.  
  142. clock_t start, finish;
  143. //double duration;
  144.  
  145.  
  146.  
  147.  
  148. int size = 2000000;
  149. A = new int[size];
  150.  
  151. for( int i=0; i<size; i++ )
  152. {
  153. A[i] = rand() % 1000 + 1;
  154. }
  155.  
  156. std::cout<<"Comparison of functions minmax for "<< size << " elements in the array " << std::endl << std::endl;
  157.  
  158.  
  159.  
  160. std::cout<<"test function minmax1: "<<std::endl;
  161. start = clock();
  162. high_resolution_clock::time_point t1 = high_resolution_clock::now();
  163. minmax1(A, j, k, size);
  164. finish = clock();
  165. high_resolution_clock::time_point t2 = high_resolution_clock::now();
  166. duration<double> time_span = duration_cast<duration<double>>(t2 - t1);
  167. //duration = (double)(finish - start) / CLOCKS_PER_SEC;
  168. std::cout << "It took me " << time_span.count() << " seconds.";
  169. //printf("%2.10f seconds\n", duration);
  170. printf("%d, %d\n", A[j], A[k] );
  171. printf("On positions: %d, %d\n\n", j, k );
  172.  
  173.  
  174.  
  175.  
  176.  
  177.  
  178.  
  179.  
  180.  
  181. //Function minmax1
  182. /*std::cout<<"test function minmax1: "<<std::endl;
  183. start = clock();
  184. minmax1(A, j, k, size);
  185. finish = clock();
  186. duration = (double)(finish - start) / CLOCKS_PER_SEC;
  187. printf("%2.10f seconds\n", duration);
  188. printf("%d, %d\n", A[j], A[k] );
  189. printf("On positions: %d, %d\n\n", j, k );
  190.  
  191. //Function minmax2
  192. std::cout<<"test function minmax2: "<<std::endl;
  193. start = clock();
  194. minmax2(A, j, k, size);
  195. finish = clock();
  196. duration = (double)(finish - start) / CLOCKS_PER_SEC;
  197. printf("%2.10f seconds\n", duration);
  198. printf("%d, %d\n", A[j], A[k] );
  199. printf("On positions: %d, %d\n\n", j, k );
  200.  
  201. ///Function minmax3
  202. std::cout<<"test function minmax3: "<<std::endl;
  203. start = clock();
  204. minmax3(A, j, k, size);
  205. finish = clock();
  206. duration = (double)(finish - start) / CLOCKS_PER_SEC;
  207. printf("%2.10f seconds\n", duration);
  208. printf("%d, %d\n", A[j], A[k] );
  209. printf("On positions: %d, %d\n\n", j, k );
  210.  
  211. delete[] A;
  212.  
  213.  
  214. //Function pot
  215. std::cout<<"test function pot:"<<std::endl;
  216. int x = 2;
  217. int value;
  218. for( int i=1; i<=5; i++ )
  219. {
  220. int numbers_of_iterations = 10000000*i;
  221. std::cout<<"Comparison of function pot for "<< numbers_of_iterations << " iterations"<< std::endl;
  222.  
  223. start = clock();
  224. for(int i=0; i<numbers_of_iterations; i++)
  225. {
  226. value = pot( x, i );
  227. }
  228. finish = clock();
  229.  
  230. duration = (double)(finish - start) / CLOCKS_PER_SEC;
  231. std::cout<<"Duration for "<<numbers_of_iterations<<" iterations "<<std::endl;
  232. printf("%2.10f seconds\n", duration);
  233. std::cout<<value<<std::endl<<std::endl;
  234. }
  235. */
  236. _getch();
  237. return 0;
  238. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement