Documente Academic
Documente Profesional
Documente Cultură
Curs 11
Metoda Divide et Impera.
Prezentarea general
Ideea (divide i cucerete) este atribuit lui Filip al II-lea,
regele Macedoniei (382-336 i.e.n.), tatl lui Alexandru cel
Mare si se refer la politica acestuia fa de statele
greceti.
n programare:Divide et impera se refer la o clas de
algoritmi care au ca principale caracteristici faptul c
mpart problema n subprobleme similare cu problema
iniil, de dimensiune mai mic, care sunt rezolvate
recursiv si apoi combin soluiile pentru a crea o soluie
pentru problema original
Metoda Divide et Impera.
Prezentarea general
Metoda Divide et impera const n 3 pai la fiecare
nivel al recurenei:
Divide:
dac dimensiunea datelor de intrare este prea mare pentru a
rezolva problema ntr-o manier direct, descompune
problema n dou sau mai multe subprobleme independente,
similare i de dimensiune mai mic a datelor de intrare
Impera(Cucerete):
rezolv recursiv subproblemele identificate
Combin:
combin soluiile subproblemelor pentru a obine soluia
problemei iniiale (uneori este cuprins n primii doi pai)
Metoda Divide et Impera.
Prezentarea general
Avantaje:
Produce algoritmi eficieni.
Descompunerea problemei n subprobleme faciliteaz
paralelizarea algoritmului n vederea execuiei sale pe
mai multe procesoare.
Dezavantaje:
Se adaug un overhead datorat recursivitii (reinerea pe
stiv a apelurilor funciilor).
Metoda Divide et Impera. Descrierea
algoritmului
Complexitate:
T(n) = T(n/2) + (1) = (log2n)
Dimensiunea subproblemelor
T(n) (n*log2n)
Complexitatea spatiala: S(n)=(n)
Metoda Divide et Impera. Exemple
Sortare rapid (Quick Sort)
Divide: partiioneaz irul n dou subsiruri a. elementele din primul sa fie mai mici
decat elem din al doilea
Cucerete: sorteaz recursiv cele dou subiruri
Combin: nu exist, deoarece soluia problemei iniiale a fostobinut simultan cu etapele de
descompunere