SHARE
TWEET

Untitled

a guest Feb 17th, 2017 61 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <iostream.h>
  4. #include <conio.h>
  5.  
  6. int maxs(double*, int);
  7.  
  8. int _tmain(int argc, _TCHAR* argv[])
  9. {
  10.     randomize();
  11.     double n;
  12.     int i;
  13.     cin >> n;
  14.     double* a = new double[n];
  15.  
  16.     for (i = 0; i < n; i++)
  17.         *(a + i) = random(21) - 10;
  18.  
  19.     for (i = 0; i < n; i++)
  20.         cout << *(a + i) << " ";
  21.  
  22.     cout << endl;
  23.     double r = maxs(a, n - 1);
  24.     cout << "Max value is " << r;
  25.     getch();
  26.     return 0;
  27. }
  28.  
  29. int maxs(double* a, int n)
  30. {
  31.     double r1, r2;
  32.  
  33.     if (n == 0)
  34.         return a[0];
  35.  
  36.     r1 = maxs(a, n / 2);
  37.     r2 = maxs(a + n / 2 + 1, n - 1);
  38.     return max(r1, r2);
  39. }
  40.    
  41. for(i=0;i<n;i++)
  42. *(a+i)=random(21)-10;
  43.    
  44. int maxs(double *, int  );
  45. ^^^
  46.    
  47. maxs(a,n-1);
  48.        ^^^^
  49.    
  50. r1=maxs(a,n/2);
  51. r2=maxs(a+n/2+1,n-1);
  52.    
  53. r2=maxs(a+n/2+1,n-1);
  54.                 ^^^^
  55.    
  56. #include <iostream>
  57. #include <algorithm>
  58.  
  59. int maxs (double *a,int n){
  60. double r1,r2;
  61. if(n==0)
  62.   return a[0];
  63.  r1=maxs(a,n/2);
  64.  r2=maxs(a+n/2+1,n-1);
  65.  return std:: max(r1,r2);
  66. }
  67.  
  68. int main()
  69. {
  70.     double a[] = { 1.1, 2.2, 3.3, 100.123 };
  71.  
  72.     std::cout << maxs( a, 2 ) << std::endl;
  73. }
  74.    
  75. size_t max_element( const double *a, size_t n )
  76. {
  77.     if ( n < 2 )
  78.     {
  79.         return 0;
  80.     }
  81.     else
  82.     {
  83.         size_t i = max_element( a, n / 2 );
  84.         size_t j = n / 2 + max_element( a + n / 2 , n - n / 2 );
  85.  
  86.         return a[i] < a[j] ? j : i;
  87.     }
  88. }
  89.    
  90. #include <iostream>
  91. #include <algorithm>
  92.  
  93. size_t max_element( const double *a, size_t n )
  94. {
  95.     if ( n < 2 )
  96.     {
  97.         return 0;
  98.     }
  99.     else
  100.     {
  101.         size_t i = max_element( a, n / 2 );
  102.         size_t j = n / 2 + max_element( a + n / 2 , n - n / 2 );
  103.  
  104.         return a[i] < a[j] ? j : i;
  105.     }
  106. }
  107.  
  108. int maxs (double *a,int n){
  109. double r1,r2;
  110. if(n==0)
  111.   return a[0];
  112.  r1=maxs(a,n/2);
  113.  r2=maxs(a+n/2+1,n-1);
  114.  return std:: max(r1,r2);
  115. }
  116.  
  117. int main()
  118. {
  119.     double a[] = { 1.1, 2.2, 3.3, 100.123 };
  120.  
  121.     std::cout << maxs( a, 2 ) << std::endl;
  122.  
  123.     std::cout << a[max_element( a, 3 )] << std::endl;
  124. }
  125.    
  126. 100
  127. 3.3
  128.    
  129. max_element( a, 4 )
  130.    
  131. max_element( a, 2 ) <== max_element( a, n / 2 )
  132.    
  133. max_element( a + 2, 2 ) <== max_element( a + т . 2, т - n / 2 )
  134.    
  135. a[0] a[1] a[2] a[3]
  136.  |    |    |    |      
  137.  ------    ------
  138.  max1       max2
  139.   |          |
  140.   ------------
  141.       max
  142.    
  143. size_t i = max_element( a, n / 2 );
  144. size_t j = n / 2 + max_element( a + n / 2 , n - n / 2 );
  145.    
  146. return a[i] < a[j] ? j : i;
RAW Paste Data
Top