Algoritmi

Trimis la data: 2008-09-27 Materia: Automatica Nivel: Facultate Pagini: 13 Nota: / 10 Downloads: 6
Autor: Andrada Dimensiune: 20kb Voturi: Tipul fisierelor: doc Acorda si tu o nota acestui curs: 1 2 3 4 5 6 7 8 9 10
vezi mai multe detalii vezi mai putine detalii
Raporteaza o eroare
Curs despre Algoritmi
Algoritmii acopera un domeniu larg de operatii generale asupra containerelor precum: traversare, sortare, cautare, inserare sau stergere de elemente. Algoritmii sunt functii generice, care se refera la containere prin intermediul iteratorilor. Tipurile iteratorilor folositi de un algoritm sunt date ca parametri ai sablonului. Algoritmii sunt declarati in zona de nume std si semnaturile lor se afla in fisierul antet algorithm. Cei mai multi algoritmi sunt scurti si simpli, putand fi definiti inline. Algoritmii care produc rezultate pe care le depun intr-un container sunt clasificati ca algoritmi de copiere si au numele terminat cu sufixul _copy.
Referate similare: Psihologia Cognitiva

Curs despre Algoritmi
Algoritmii a caror functionare este determinata de satisfacerea unui predicat sunt cunoscuti ca algoritmi cu predicate. Lista de parametri a unui asemenea algoritm va contine un obiect functie predicat. Numele acestor algoritmi contine sufixul _if.

In prezentarea algoritmilor vom utiliza urmatoarele abrevieri:
InIt - InputIterator, OutIt - OutputIterator, FwIt - ForwardIterator,
BIt - BidirectionalIterator, RAIt - RandomAccessIterator, Pred - Predicate,
BinPred - BinaryPredicate, OpUnar - UnaryOperator, Func - Function, T - value_type (tipul elementelor din container)
Algoritmi care nu modifica secventa.

Se folosesc pentru a extrage informatii din secventa sau a gasi pozitia unor elemente din secventa.
1. for_each() elimina un ciclu explicit, repetand o operatie f asupra elementelor dintr-un interval de iteratori. Se foloseste pentru extragerea de informatii asupra elementelor secventei.

template
Op for_each(InIt prim, InIt ultim, Func f){
while(prim!=ultim)
f(*prim++);
return f;
}

2. cautarea unei valori -familia find
find() cauta in secventa prima valoare egala cu un parametru. Intoarce un iterator la prima valoare gasita.

template InIt find(InIt prim, InIt ultim, const T& val);

find_if() cauta in secventa prima valoare care satisface un predicat.
template InIt find_if(InIt prim, InIt ultim, Pred p);

find_first_of()gaseste primul element din secventa 1 care se afla in secventa 2, sau gaseste primul element din secventa 1 care se satisface predicatul cu un element din secventa 2.

template
FwIt1 find_first_of(FwIt1 pr1, FwIt1 ult1, FwIt2 pr2, FwIt2 ult2);
template
FwIt1 find_first_of(FwIt1 pr1, FwIt1 ult1, FwIt2 pr2, FwIt2 ult2, BinPred p);

adjacent_find()gaseste prima pereche de elemente vecine egale / sau care satisfac predicatul binar.

template FwIt adjacent_find(FwIt prim, FwIt ultim);
template FwIt adjacent_find(FwIt prim, FwIt ultim, BinPred p);

3 contorizarea aparitiei unei valori
count() numara valorile din intervalul de iteratori egale cu valoarea data ca parametru. Numarul de elemente nu depaseste distanta intre iteratori.

template
size_t count(InIt prim,InIt ultim, const T& val);

count_if()numara valorile din intervalul de iteratori care satisfac predicatul.

template
size_t count_if(InIt prim, InIt ultim, Pred p);

4. - compararea a doua secvente
equal() intoarce true/false daca cele doua secvente sunt egale sau daca toate perechile satisfac predicatul

template
bool equal(InIt1 prim1, InIt1 ultim1, InIt2 prim2);
template
bool equal(InIt1 prim1, InIt1 ultim1, InIt2 prim2, BinPred p);

mismatch()intoarce iteratori la prima pereche de elemente neegale, respectiv perechea care nu satisface predicatul din cele doua secvente.

template
pair mismatch(InIt1 prim1, InIt1 ultim1, InIt2 prim2);
template
pair mismatch(InIt1 prim1, InIt1 ultim1, InIt2 prim2, BinPred p);

5 cautarea unei secvente
search() - determina prima aparitie a secventei2 ca subsecventa a secventei1, respectiv prima aparitie a secventei2 ca subsecventa in secventa1 cu elemente aflate in relatia data cu elementele din secventa2. Intoarce un iterator la primul element din prima secventa egalata cu secventa2.

template
FwIt1 search(FwIt1 prim1,FwIt1 ultim1,FwIt2 prim2,FwIt2 ultim2);
template
FwIt1 search(FwIt1 prim1,FwIt1 ultim1,FwIt2 prim2,FwIt2 ultim2,BinPred p);

find_end() determina ultima aparitie a secventei2 ca subsecventa a secventei1. Intoarce un iterator la primul element din ultima secventa egalata cu secventa2.

template
FwIt1 find_end(FwIt1 prim1,FwIt1 ultim1,FwIt2 prim2,FwIt2 ultim2);
template
FwIt1 find_end(FwIt1 prim1,FwIt1 ultim1,FwIt2 prim2,FwIt2 ultim2,BinPred p);

  • pag. 1
  • pag. 2
  • pag. 3
  • pag. 4
  • pag. 5
  • pag. 6
  • pag. 7
  • pag. 8
  • pag. 9
  • pag. 10

Nota explicativa
Referatele si lucrarile oferite de Referate.ro au scop educativ si orientativ pentru cercetare academica.

Iti recomandam ca referatele pe care le downloadezi de pe site sa le utilizezi doar ca sursa de inspiratie sau ca resurse educationale pentru conceperea unui referat nou, propriu si original.

Referat.ro te invata cum sa faci o lucrare de nota 10!
Filmele zilei
Linkuri utile
Programeaza-te online la salonul favorit Descarca gratuit aplicatiile pentru iOS si Android Filmulete haioase Filme, poante si cele mai tari faze Jocuri Cele mai tari jocuri de pe net Referate scoala Resurse, lucrari, referate materiale pentru lucrari de nota 10 Bacalaureat 2019 Vezi subiectele examenului de Bacalaureat din 2019 Evaluare Nationala 2019 Ultimele informatii despre evaluare nationala
Toate imaginile, textele sau alte materiale prezentate pe site sunt proprietatea referat.ro fiind interzisa reproducerea integrala sau partiala a continutului acestui site pe alte siteuri sau in orice alta forma fara acordul scris al referat.ro. Va rugam sa consultati Termenii si conditiile de utilizare a site-ului. Informati-va despre Politica de confidentialitate. Daca aveti intrebari sau sugestii care pot ajuta la dezvoltarea site-ului va rugam sa ne scrieti la adresa webmaster@referat.ro.
Confidentialitatea ta este importanta pentru noi

Referat.ro utilizeaza fisiere de tip cookie pentru a personaliza si imbunatati experienta ta pe Website-ul nostru. Te informam ca ne-am actualizat politica de confidentialitate pentru a integra cele mai recente modificari privind protectia persoanelor fizice in ceea ce priveste prelucrarea datelor cu caracter personal. Inainte de a continua navigarea pe Website-ul nostru te rugam sa aloci timpul necesar pentru a citi si intelege continutul Politicii de Cookie. Prin continuarea navigarii pe Website-ul nostru confirmi acceptarea utilizarii fisierelor de tip cookie conform Politicii de Cookie. Nu uita totusi ca poti modifica in orice moment setarile acestor fisiere cookie urmarind instructiunile din Politica de Cookie.


Politica de Cookie
Am inteles