[C++] Napisz program realizujący algorytm jednoczesnego znajdowania elementu najmniejszego i najwiekszego, wykorzystujac metode "dziel i zwyciężaj". Dobierz odpowiednie struktury danych. Pilne !
void dziel(int &min, int &max, int*od, int ile) { if (ile == 1) { min = *od; max = *od; } else { //dziel int min1; int max1; dziel(min1, max1, od, ile/2); int min2; int max2; dziel(min2, max2, od + ile/2, ile - ile/2); //rzadz if (min1 < min2) min = min1; else min = min2; if (max1 < max2) max = max2; else max = max1; } }
int main() { int tab[TABMAX]; for (int i = 0 ; i < TABMAX; i++) tab[i] = rand()%100; for (int i = 0 ; i < TABMAX; i++) std::cout << tab[i] << std::endl; int min; int max; dziel(min, max, tab, TABMAX); std::cout << "min=" << min << std::endl; std::cout << "max=" << max << std::endl; return 0; }
#include <cstdlib>
#define TABMAX 10
void dziel(int &min, int &max, int*od, int ile)
{
if (ile == 1) { min = *od; max = *od; }
else
{
//dziel
int min1;
int max1;
dziel(min1, max1, od, ile/2);
int min2;
int max2;
dziel(min2, max2, od + ile/2, ile - ile/2);
//rzadz
if (min1 < min2) min = min1;
else min = min2;
if (max1 < max2) max = max2;
else max = max1;
}
}
int main()
{
int tab[TABMAX];
for (int i = 0 ; i < TABMAX; i++) tab[i] = rand()%100;
for (int i = 0 ; i < TABMAX; i++) std::cout << tab[i] << std::endl;
int min;
int max;
dziel(min, max, tab, TABMAX);
std::cout << "min=" << min << std::endl;
std::cout << "max=" << max << std::endl;
return 0;
}