Buna!
Invat metoda Divide et Impera, intuitiv reusesc sa fac problemele, dar nu inteleg inca constient fiecare pas ce se intampla in memoria calculatorului. Spre exemplu in algoritmul de mai jos, unde trebuie sa gasesc cel mai mare element dintr-un vector (algoritm functional), nu inteleg ce se intampla, cum si unde se retine cel mai mare element, cand compar a cu b la fiecare reapel. De asemenea, nu inteleg ce e cu conditia aceia if (s==d) return v[s]; , ca la recursivitate, dar nu inteleg ce rol are aici. Imi poate explica cineva detaliat? As fi foarte recunoscator.
#include
using namespace std;
int maxim (int v[100], int s, int d)
{
if (s==d)
return v[s];
else
{
int m=(s+d)/2;
int a=maxim(v,m+1,d);
int b=maxim(v,s,m);
if (a>b)
return a;
else
return b;
}
}
int main()
{
int n,v[100];
cin>>n;
for (int i=0;i
cin>>v[i];
cout<
return 0;
}
Vă mulțumim că ați ales să vizitați platforma noastră dedicată Informatică. Sperăm că ați găsit conținutul oferit util și inspirațional. Dacă aveți întrebări suplimentare sau doriți asistență, vă încurajăm să ne contactați. Ne-ar face plăcere să reveniți și nu uitați să ne adăugați în lista dumneavoastră de favorite!