Ce este algoritmica?
Pentru a afla acest lucru trebuie sa stim ce este un algoritm.
Un algoritm este o succesiune de pasi elementari ce ajuta la dezvoltarea unei probleme (de ordin matematic / informatic). De obicei, problemele de algoritmica se rezuma la a avea niste date ce le stim (date de intrare), ce sunt tratate special prin diversi algoritmi ajungand sa ofere niste date noi (date de iesire). Aproape orice problema de algoritmica functioneaza pe acest principiu. Ca si baza, algoritmica este acea parte din domeniul programarii care urmareste imbunatatirea performantelor unor algoritmi si reducerea resurselor pentru performante mai bune.
Algoritmul este noțiunea fundamentală a informaticii. Totul este construit în jurul algoritmilor.
Cele mai importante proprietăți ale unui algoritm, îndeplinite de diverșii algoritmi într-o măsură mai mare sau mai mică, sunt următoarele:
Un algoritm este o succesiune de pasi elementari ce ajuta la dezvoltarea unei probleme (de ordin matematic / informatic). De obicei, problemele de algoritmica se rezuma la a avea niste date ce le stim (date de intrare), ce sunt tratate special prin diversi algoritmi ajungand sa ofere niste date noi (date de iesire). Aproape orice problema de algoritmica functioneaza pe acest principiu. Ca si baza, algoritmica este acea parte din domeniul programarii care urmareste imbunatatirea performantelor unor algoritmi si reducerea resurselor pentru performante mai bune.
Algoritmul este noțiunea fundamentală a informaticii. Totul este construit în jurul algoritmilor.
Cele mai importante proprietăți ale unui algoritm, îndeplinite de diverșii algoritmi într-o măsură mai mare sau mai mică, sunt următoarele:
- Corectitudinea - este proprietatea algoritmului de a furniza o soluție corectă a problemei date. În acest sens este de dorit ca algoritmii să se bazeze pe fapte și relații matematice demonstrabile.
- Caracterul univoc sau determinist - plecând de la un set de date inițial anume, rezultatul este unic, sau altfel spus, repetarea execuției algoritmului duce întotdeauna la aceleași rezultate.
- Generalitatea - este proprietatea unui algoritm de a rezolva o clasă sau categorie de probleme, și nu doar o singură problemă particulară. Spre exemplu, un algoritm care rezolvă doar ecuația este mai puțin general decât unul care rezolvă ecuația , oricare ar fi valorile lui .
- Claritatea - proprietatea algoritmului de a descrie cu exactitate și fără ambiguități pașii care trebuiesc parcurși în rezolvarea problemei.
- Verificabilitatea - acea proprietate a algoritmelor care permite ca fiecare pas să poată fi verificat într-un timp rezonabil de către om, folosind mijloace de validare de încredere.
- Optimalitatea - proprietatea unui algoritm de a se termina după un număr minim de pași. Spre exemplu, dacă se cere să se calculeze suma primelor 'n' numere naturale, se poate aplica formula de calcul, și astfel algoritmul se termină într-un singur pas, pe când dacă am aduna toate numerele de la 1 la n, el s-ar termina abia în n pași, și deci nu ar fi optim. În teoria complexității se folosește notația O(n).
- Finitudinea - este proprietatea algoritmului de a se termina într-un număr finit de pași. Există și algoritmi care nu se termină într-un număr mărginit de pași, dar aceștia se numesc "metode algoritmice".
- Eficiența - este proprietatea unui algoritm de a se termina nu numai într-un număr finit, ci și "rezonabil" de pași, chiar dacă acesta nu este cel mai mic posibil (nu este optim). Algorimul este ineficient și dacă rezultatul se obține într-un timp mai lung decât cel dorit sau permis.
- Existența unei intrări (datele de prelucrat). Întrucât operatorii se aplică unui operand (sau și mai multor operanzi deodată), este de neconceput un algoritm fără niciun operand. Intrările permise formează împreună un set (mulțime) specific de obiecte sau valori, care se numește "domeniul" algoritmului.
- Existența unei ieșiri (rezultatele). Este de neconceput un algoritm care nu are nicio ieșire, deoarece în acest caz intră în discuție însăși utilitatea sa.