Guest User

Untitled

a guest
May 22nd, 2018
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.69 KB | None | 0 0
  1. INICIO
  2. Si Cini<Cfin-1, hacer:
  3. mitad = Parte entera de (Cini+Cfin)/2
  4. [Max1, Min1]= MaximoMinimoDV (A, Cini, mitad)
  5. [Max2, Min2]= MaximoMinimoDV (A, mitad+1, Cfin)
  6. Max= Máximo(Max1, Max2);
  7. Min= Mínimo(Min1, Min2);
  8.  
  9. En otro caso, hacer:
  10. si A[Cmin]>A[Cmax]
  11. Max = A[Cmin] ; Min = A[Cmax]
  12. en otro caso
  13. Max = A[Cmax] ; Min = A[Cmin]
  14. Fin-En otro caso
  15. Fin-En otro caso
  16. FIN-Algoritmo
  17.  
  18. int* MaxMin(int *A, const int Cini, const int Cfin) {
  19. int *v1,*v2;
  20. v1=new int [2]; // v1[max1,min1]
  21. v2=new int[2]; // v2[max2,min2]
  22.  
  23. if (Cini<Cfin-1)
  24. {
  25. int mitad= (Cini-Cfin)/2;
  26. v1=MaxMin(A,0,mitad);
  27. v2=MaxMin(A,mitad+1,4);
  28.  
  29. int max=maximo(v1[0],v2[0]); //devuelve max de 2 num
  30. int min=minimo(v1[1],v2[1]); //devuelve min de 2 num
  31. }
  32. if (Cini=Cfin-1)
  33. {
  34. if (A[Cini]>A[Cfin]{
  35. max=A[Cini];
  36. min=A[Cfin];
  37. }else
  38. {
  39. max=A[Cfin];
  40. min=A[Cini];
  41. }
  42. }else
  43.  
  44. max=A[Cini];
  45. min=max;
  46. }
  47.  
  48. if (Cini=Cfin-1)
  49.  
  50. Cini = Cfin-1;
  51. if (Cini)
  52.  
  53. error: assignment of read-only parameter 'Cini'
  54. if (Cini=Cfin-1)
  55. ^
  56.  
  57. if (Cini==Cfin-1)
  58.  
  59. if (A[Cini]>A[Cfin]{
  60.  
  61. error: expected ')' before '{' token
  62. if (A[Cini]>A[Cfin]{
  63. ^
  64.  
  65. if (a[Cini]>A[Cfin]){
  66.  
  67. error: 'max' was not declared in this scope
  68. max=A[Cini];
  69. ^
  70.  
  71. if (Cini<Cfin-1)
  72. { // <<--- Inicio del ambito
  73. int mitad= (Cini-Cfin)/2;
  74. v1=MaxMin(A,0,mitad);
  75. v2=MaxMin(A,mitad+1,4);
  76.  
  77. int max=maximo(v1[0],v2[0]); //devuelve max de 2 num
  78. int min=minimo(v1[1],v2[1]); //devuelve min de 2 num
  79. } // <<--- Fin del ambito (max y min dejan de existir)
  80.  
  81. int max, min;
  82. if (Cini<Cfin-1)
  83. // ...
  84.  
  85. }else
  86.  
  87. max=A[Cini];
  88. min=max;
  89. }
  90.  
  91. int* MaxMin(/*...*/) {
  92. // ...
  93. }else{
  94. max=A[Cini];
  95. min=max;
  96. }
  97. }
  98.  
  99. int mitad = (Cini-Cfin)/2;
  100.  
  101. int mitad = (Cfin-Cini)/2;
  102.  
  103. Cini = 0, Cfin = 10 => (10-0)/2 = 5 -> OK
  104. Cini = 5, Cfin = 10 => (10-5)/2 = 2 -> ¿en serio?
  105.  
  106. int mitad = Cini + (Cfin-Cini)/2;
  107.  
  108. int* MaxMin(int *A, const int Cini, const int Cfin) {
  109.  
  110. template<typename ITERATOR>
  111. auto MinMax(ITERATOR begin, ITERATOR end);
  112.  
  113. template<typename ITERATOR>
  114. auto MinMax(ITERATOR begin, ITERATOR end)
  115. {
  116. if (auto distance = std::distance(begin, end); distance <= 1)
  117. {
  118. return std::tuple{std::min(*begin, *end), std::max(*begin, *end)};
  119. }
  120. else
  121. {
  122. auto half = distance / 2;
  123. auto [min_l, max_l] = MinMax(begin, begin + half);
  124. auto [min_r, max_r] = MinMax(begin + half + 1, end);
  125. return std::tuple{std::min(min_l, min_r), std::max(max_l, max_r)};
  126. }
  127. }
  128.  
  129. /* La separación entre begin
  130. y end es de 1 o 0
  131. vvvvvvvvvvvvv <--- elementos */
  132. if (auto distance = std::distance(begin, end); distance <= 1)
  133. // ~~~~~~~~~~~~~~~~~~~~~~~~~ <--- Distancia entre begin y end
  134.  
  135. return std::tuple{std::min(*begin, *end), std::max(*begin, *end)};
  136.  
  137. auto half = distance / 2;
  138. auto [min_l, max_l] = MinMax(begin, begin + half);
  139. auto [min_r, max_r] = MinMax(begin + half + 1, end);
  140. return std::tuple{std::min(min_l, min_r), std::max(max_l, max_r)};
  141.  
  142. unsigned u[]{0,1,2,3,4,5,6,7,8, ... ,36,37,38,39,40};
  143. MinMax(std::begin(u), std::end(u) - 1);
  144.  
  145. std::vector<double> d{387461298.3,76.340, ... ,6.90,3.6,3.4,63.4,98.7};
  146. MinMax(std::begin(d), std::end(d) - 1);
  147.  
  148. std::string panagrama{"Benjamin pidio una bebida de kiwi y fresa. Noe, sin verguenza, la mas exquisita champanya del menu."};
  149. MinMax(std::begin(panagrama), std::end(panagrama) - 1);
Add Comment
Please, Sign In to add comment