SHARE
TWEET

Untitled

a guest Dec 9th, 2019 83 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  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. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top