Sunteți pe pagina 1din 6

Divide et Impera

Implementare
recursivă

Definiție Știați că

Istorie Aplicații
Istorie
1.Divide et Impera este un celebru adagiu latin, care, în multe momente
ale istoriei, a avut valoarea unui principiu de guvernământ.

2.Divide et Impera se referă la “Dezbină şi stăpâneşte”.


Definiție
Divide et Impera este o metodă de programare bazată pe un principiu
simplu:
•problema dată se descompune în două (sau mai multe) subprobleme (de
același tip ca problema inițială, dar de dimensiuni mai mici);
•se rezolvă independent fiecare subproblemă;
•se combină rezultatele obținute pentru subprobleme, obținând rezultatul
problemei inițiale.
Subproblemele trebuie să fie de același tip cu problema inițială, ele
urmând a fi rezolvate prin aceeași tehnică.
Subproblemele în care se descompun problema dată trebuie să fie:
•de același tip cu problema dată;
•de dimensiuni mai mici (mai “ușoare”);
•independente (să nu se suprapună, prelucrează seturi de date distincte).
Implementare recursivă
Divide et impera este o tehnică ce admite o implementare recursivă.
Principiul general prin care se elaborează algoritmi recursivi este: "ce se
întâmplă la un nivel, se întâmplă la orice nivel" (având grijă să asigurăm
condițiile de terminare). Așadar, un algoritm prin divide et impera se
elaborează astfel: la un anumit nivel avem două posibilități:
1.s-a ajuns la o problemă care admite o rezolvare imediată (condiția de
terminare), caz în care se rezolvă și se revine din apel;
2.nu s-a ajuns în situația de la punctul 1, caz în care problema curentă
este descompusă în (două sau mai multe) subprobleme, pentru fiecare din
ele urmează un apel recursiv al funcției, după care combinarea
rezultatelor are loc fie pentru fiecare subproblemă, fie la final, înaintea
revenirii din apel.
Știai că
1.Nu toate problemele pot fi rezolvate prin utilizarea acestei tehnici. Se
poate afirma că numărul celor rezolvabile prin "divide et impera" este
relativ mic, tocmai datorită cerinței ca problema să admită o descompunere
repetată.
2.În tehnica Divide et Impera, în urma împărțirilor succesive în
subprobleme, se ajunge în situația că problema curentă nu mai poate fi
împărțită în subprobleme. O asemenea problemă se numește problemă
elementară și se rezolvă în alt mod – de regulă foarte simplu.
3.Folosirea acestui algoritm îmbunătățește eficiența, însă memoria alocată
este mai mare.
Aplicații
Rezolvare

S-ar putea să vă placă și