Algoritmi și Structuri de Date

Curs
8.5/10 (2 voturi)
Domeniu: Calculatoare
Conține 1 fișier: doc
Pagini : 12 în total
Cuvinte : 4651
Mărime: 37.99KB (arhivat)
Publicat de: Sidonia Alexandru
Puncte necesare: 0

Extras din curs

ALGORITMI. METODE DE DESCRIERE A ALGORITMILOR

1.1 Scurt istoric

În secolul al IX-lea d.Hr., un matematician persan, Abu Abdullah Muhammed bin Musa al-Khwarizmi a scris o lucrare despre efectuarea calculelor numerice într-o manieră algebrică, “Liber algorithmi”, unde “algorithm” provine de la al-Khwarizmi ceea ce înseamnă “din oraşul Kwarizm”, azi oraşul Kiwa din Uzbechistan. Acest autor, ca şi alti matematicieni ai evului mediu inţelegeau prin algoritm o regulă pe baza căreia se pot efectua calcule matematice.

Multă vreme conceptul de algoritm rămâne cu o întrebuinţare destul de restrânsă chiar şi în matematică. Către sfârşitul secolului al XIX-lea (1886-1888) Kronecker şi Dedekind introduc în matematică funcţiile recursive în care conceptul de algoritm este strâns legat de cel de recursivitate. Abia în secolul XX, în deceniile 3 şi 4, prin lucrările matematicienilor Skolem, Ackerman, Sudan, Gödel, Church, Kleene, Turing şi alţii, teoria algoritmilor şi recursivităţii se constituie ca atare.

Astăzi, ca rezultat al conexiunii dintre algoritm şi calculator, gândirea algoritmică s-a transformat dintr-un instrument matematic particular, într-o modalitate fundamentală de abordare a problemelor din diverse domenii, folosit pentru a descrie într-o manieră ordonată activităţi care constau în parcurgerea unei succesiuni de paşi (cum este de exemplu utilizarea unui telefon public sau realizarea unei reţete gastronomice).

Algoritmul este considerat noţiunea fundamentală a informaticii. În informatică, prin algoritm se poate înţelege o metodă prin care se descriu paşii necesari pentru rezolvarea unei clase de probleme, metodă care se poate implementa pe calculator prin intermediul unui limbaj de programare.

Conform următoarei secţiuni, se poate spune că un algoritm este o secvenţă finită de paşi, aranjată într-o ordine logică specifică care, atunci când este executată, produce o soluţie corectă pentru o problemă precizată.

1.2 Generalităţi despre algoritmi

În matematică există o serie de algoritmi: cel al rezolvării ecuaţiei de gradul doi, algoritmul lui Eratostene (pentru generarea numerelor prime mai mici decât o anumită valoare), schema lui Horner (pentru determinarea câtului şi restului împărţirii unui polinom la un binom), etc.

Soluţia problemei se obţine prin execuţia algoritmului. Algoritmul poate fi executat pe o maşină formală (în faza de proiectare şi analiză) sau pe o maşină fizică (calculator) după ce a fost codificat într-un limbaj de programare. Spre deosebire de un program, care depinde de un limbaj de programare, un algoritm este o entitate matematică care este independentă de maşina pe care va fi executat.

Studiul algoritmilor presupune:

- Elaborarea algoritmilor. Are ca scop identificarea unei soluţii de rezolvare a problemei practice.

- Exprimarea algoritmilor. Presupune prezentarea algoritmilor într-un limbaj abstract, bine definit, astfel încat să avem o formă clară şi concisă a soluţiei identificate. Algoritmii pot fi exprimati şi în limbaje de programare.

- Validarea şi analiza algoritmilor. Înseamnă revizuirea algoritmilor pentru a vedea dacă într-adevăr, acestia produc rezultatele dorite pentru problema analizată şi identificarea eficienţei acestor algoritmi

- Testarea algoritmilor. Presupune rularea programelor aferente algoritmilor şi depanarea acestora.

Un algoritm trebuie să posede următoarele proprietăţi:

Finitudine. Un algoritm trebuie să admită o descriere finită şi fiecare dintre prelucrările pe care le conţine trebuie să poate fi executată în timp finit. Prin intermediul algoritmilor nu pot fi prelucrate structuri infinite.

Corectitudinea. Este proprietatea algoritmului de a furniza o soluţie corectă a problemei date.

Generalitate. Un algoritm destinat rezolvării unei (clase de) probleme trebuie să permită obţinerea rezultatului pentru orice date de intrare şi nu numai pentru date particulare de intrare.

Rigurozitate / claritate. Paşii algoritmului trebuie specificaţi riguros, fără ambiguităţi. În orice etapă a execuţiei algoritmului trebuie să se ştie exact care este următoarea etapă ce va fi executată.

Eficienţa. Algoritmii pot fi efectiv utilizaţi doar dacă folosesc resurse de calcul în volum acceptabil. Prin resurse de calcul se înţelege volumul de memorie şi timpul necesar pentru execuţie.

Preview document

Algoritmi și Structuri de Date - Pagina 1
Algoritmi și Structuri de Date - Pagina 2
Algoritmi și Structuri de Date - Pagina 3
Algoritmi și Structuri de Date - Pagina 4
Algoritmi și Structuri de Date - Pagina 5
Algoritmi și Structuri de Date - Pagina 6
Algoritmi și Structuri de Date - Pagina 7
Algoritmi și Structuri de Date - Pagina 8
Algoritmi și Structuri de Date - Pagina 9
Algoritmi și Structuri de Date - Pagina 10
Algoritmi și Structuri de Date - Pagina 11
Algoritmi și Structuri de Date - Pagina 12

Conținut arhivă zip

  • Algoritmi si Structuri de Date.doc

Alții au mai descărcat și

Proiectarea unei soluții de comerț electronic

Comertul electronic reprezinta multitudinea proceselor software si comerciale necesare proceselor business sa functioneze numai, sau în primul...

Șabloane de proiectare a interfețelor utilizator pentru aplicații web

Capitolul 1 Introducere Lucrarea prezinta sabloanele de proiectare , ce sunt acestea si cum ne ajuta ele in rezolvarea problemelor de proiectare...

Autocad pentru începători

C1.1.CONCEPTUL DE CAD TERMINOLOGIE - COMPUTER AIDED ENGINEERING -CAE-vizeazăetapeledecercetare,inovaresiconcepţie; - COMPUTER AIDED DRAWING/...

Programare orientată pe obiect C++

1. INTRODUCERE ÎN C++ Exista limbaje concepute strict pe baza conceptelor programării orientate pe obiecte (POO), de exemplu Simula sau Smalltalk....

Seminar 4 Python

Exemplu instalare pachet scikit-learn Din https://pypi.org/project/scikit-learn/ copiem pip install scikit-learn În Command Prompt:...

Programare HTML și XML

CAPITOLUL I NOTIUNI GENERALE [13, 28, 78, 77] 1.1 INTERNET Internet-ul, sau reteaua mondială de calculatotore, reprezintă un puternic instrument...

Inginerie Software

Fazele dezvoltării unui produs software 1 Ce este ingineria programării? 2. Fazele ingineriei programării 2.1. Faza de analiză 2.2. Faza de...

Rețele de Calculatoare

O reţea de calculatoare (computer network) este un ansamblu de calculatoare interconectate prin intermediul unui mediu de comunicaţie (cablu...

Te-ar putea interesa și

Proiect Algoritmi și Structuri de Date

<<INTRODUCERE>> Procesele desfăşurate într-o activitate organizată nu au loc la întam-plare, ci sunt declanşate de anumite informaţii care...

Algoritmi și Structuri de Date

Sistem informational = ansamblu de elemente interconectate si interconditionate între ele în vederea realizarii unui scop; este un ansamblu de...

Algoritmi și Structuri de Date

Introducere: Semiotica se ocupã cu studiul semnelor în natura si în societate. Semnul nu este o calitate în sine a unui obiect, ci o functie pe...

Algoritmi și Structuri de Date

Capitolul I Sistem informaţional - sistem informatic Un sistem este un ansamblu de elemente care pot fi conectate prin diferite tipuri de...

Proiect - Algoritmi și Structuri de Date

1. TEORIE Sistemul informaţional-informatic Activitatea desfasurata intr-un sistem organizat, in vederea realizarii unui obiectiv poate fi...

Structuri de Date și Algoritmi

1 Tema:Implimentarea tipului abstract de date.Tabloul de structuri. 2 Sarcina:De implimentat tipul abstract de date,tablou de structuri si de...

Structuri de Date și Analiza Algoritmilor

8. Arbori 8.1. Arbori generalizaţi 8.1.1. Definiţii În definirea noţiunii de arbore se porneşte de la noţiunea de vector. Fie V o mulţime având...

Algoritmi și Structuri de Date

Modulul 0. Alocare dinamica in limbajul C Capitolul 0. Pointeri si alocare dinamica. Tipul de date struct 0.1 Pointeri si alocare dinamica O...

Ai nevoie de altceva?