Advertisement
Guest User

Untitled

a guest
Feb 17th, 2017
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.37 KB | None | 0 0
  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;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement