RECURSIVITATE * * * RECURSIVITATE * * * RECURSIVITATE * * * RECURSIVITATE * * * RECURSIVITATE * * * RECURSIVITATE

Recursivitate generala

Current show

Recursivitate Recursivitatea este un oarecare procedeu foarte important în programare. Spunem despre o funcţie că este recursivă, daca ea se autoapelează. Cel mai important aspect al recursivităţii constă în adăugarea în funcţia respectivă a unei condiţii de oprire a funcţiei, altfel funcţia se va rechema până cănd zona sa de stivă nu va mai putea susţine un alt apel de funcţie. Cu alte cuvinte, se va ajunge la situaţia de Stack Overflow. Este deci necesară o condiţie de oprire, care va face să se iasă din funcţie, atunci cand s-a ajuns la un anumit caz particular.
Funcţiile recursive trebuie să îndeplinească condiţia de consistenţă, care presupune că prelucrarea parametrilor locali ai funcţiei conduce către valoarea de bază, de la care se pleacă în construirea soluţiei Recursivitate

Divide & Impera

Current show

Divide & ImperaMetoda Divide et Impera (Imparte şi Stăpâneste) este o metodă de programare care se aplică problemelor care pot fi descompuse în subprobleme independente, similare problemei iniţiale, de dimensiuni mai mici, şi care pot fi rezolvate foarte uşor. Procesul se reia până când (în urma descompunerilor repetate) se ajunge la probleme care admit rezolvare imediată. Nu toate problemele pot fi rezolvate prin utilizarea acestei tehnici. Numărul celor rezolvabile prin "divide et impera" este relativ mic, tocmai datorită cerinței ca problema să admită o descompunere repetată. 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). Divide & Impera

Cautare binara

Current show

Cautare binara Un CAZ PARTICULAR de probleme de tip « Divide et Impera » îl constituie căutarea binară: Se consideră un vector ordonat crescator cu N elemente şi o valoare K. Se cere să se scrie o funcţie care returnează poziţia elementului K (dacă există!)în vectorul dat. În cazul în care K nu există în vector, se returnează -1. O soluţie ar fi căutarea secvenţială: se parcurge vectorul în mod normal, şi se localizează elementul K. Această soluţie are complexitatea O(N). Metoda optimă de rezolvare este cautarea binară. Aceasta se foloseşte de metoda divide et impera. Se împarte vectorul în jumătate, după care se continuă căutarea, în mod similar, în acea parte a vectorului unde se afla elementul K. Condiţia ca vectorul să fie sortat este esenţială. Complexitatea acestui algoritm este O(logN) = "Visul programatorului".

Cautare binara

Portal eLearning

Grafica

in slujba studiului Algoritmilor si a Structurilor de date

 

Prin Portalul eLearning, am vrut sa creez o modalitate facilă de acces la studiul și înțelegerea Algoritmilor și Structurilor de Date, folosind vizualizarea grafică a problemelor și  rezolvărilor acestora din dorința de a creea un mediu online prietenos, care să permită rezolvarea și analiza în timp real a rezultatelor, plecând de la dictonul că “o imagine face cât o mie de cuvinte”. Am vrut să creez o platformă accesibilă, atât celor interesați să învețe cât și celor care vor să contribuie la găsirea unor modalităţi diferite de rezolvare a unor probleme familiare celor din lumea programării și matematicii.
Platforma este un mediu deschis, unde se găsesc cursuri teoretice, rezolvari diverse ale acestor probleme, unde se vor putea adăuga în permanență noi informații și unde, în viitor, vor putea avea loc dezbateri în cadrul unui forum.

Prin Portalul eLearning, am vrut sa creez o modalitate facilă de acces la studiul și înțelegerea Algoritmilor și Structurilor de Date, folosind vizualizarea grafică a problemelor și  rezolvărilor acestora din dorința de a creea un mediu online prietenos, care să permită rezolvarea și analiza în timp real a rezultatelor, plecând de la dictonul că “o imagine face cât o mie de cuvinte”. Am vrut să creez o platformă accesibilă, atât celor interesați să învețe cât și celor care vor să contribuie la găsirea unor modalităţi diferite de rezolvare a unor probleme familiare celor din lumea programării și matematicii.
Platforma este un mediu deschis, unde se găsesc cursuri teoretice, rezolvari diverse ale acestor probleme, unde se vor putea adăuga în permanență noi informații și unde, în viitor, vor putea avea loc dezbateri în cadrul unui forum.