90 likes | 215 Views
ALGORITMI PENTRU SORTAREA UNUI VECTOR. METODA SELECTIEI DIRECTE. CONTINUT. ALGORITMI DE SORTARE METODA SELECTIEI DIRECTE Caracteristici Pasii algoritmului Exemplu Implementare. ALGORITMI DE SORTARE.
E N D
ALGORITMI PENTRU SORTAREA UNUI VECTOR METODA SELECTIEI DIRECTE
CONTINUT • ALGORITMI DE SORTARE • METODA SELECTIEI DIRECTE • Caracteristici • Pasiialgoritmului • Exemplu • Implementare
ALGORITMI DE SORTARE • Algoritmii de sortarerearanjeazaelementelevectoruluiastfelincatintrevalorilelorsaexiste o relatie de ordine (ordonarecrescatoaresadescrescatoare). • Sortareaunui vector se poaterealizautilizandmaimultemetode de sortare. Exemple: - metodaselectieidirecte - metodabulelor - metodainserariidirecte - interclasarea • Algoritmiisuntprezentatipentruordonareacrescatoare a vectorului. Pentruordonaredescrescatoare se vanegaexpresiafolositapentrucomparare.
METODA SELECTIEI DIRECTE • Metodaconsta in aducereape prima pozitie a elementului cu valoareaceamai mica din cele n elemente ale vectorului, apoiaducereapepozitia a doua a elementului cu valoareaceamai mica din cele n-1 elemente, reluandu-se procesulpentruelementeleramase. • Variabileutilizate: v – vectorul care se prelucreaza n – lungimealogica a vectorului i, j – variabilecontor aux – variabilaauxiliarapentruinterschimbareaelementelor
PASII ALGORITMULUI Pas 1. Se initializeazapozitiape care se aduceminimul (i=0) Pas 2. Se aducepepozitiai a vectoruluielementul cu valoarea minima din celen-i-1elementeastfel: Pas 2.1. Se initializeazapozitiaprimului element cu care se compara (j=i+1) Pas 2.2. Se comparaelementul v[i] cu v[j]. Daca v[j]<v[i] celedouaelemente se interschimba: aux=v[i]; v[i]=v[j]; v[j]=aux; Pas 2.3. Se trece la urmatorul element pentrucomparare(j=j+1) Pas 2.4. Se compara j cu numarul de elemente in care se cautaminimulpentru a se vedeadaca s-a terminatcautareaminimului. Daca j<n atunci se revine la Pas 2.2. Pas 3.Se trece la urmatoareapozitie din vector (i=i+1) pentru a duce peaceastapozitieminimul din cele n-i-1 elemente. Pas 4. Se compara I cu numarul de pozitii ale vectorului in care trebuieadusevalorileminime . Dacai<n-1 atunci se revine la Pas 2. Pas 5. Vectorulestesortatcrescator.
EXEMPLU Fie un vector care continenumerele 4,3,2,1: i=0 j=1 j=2 j=3 i=1 j=2 j=3 i=2 j=3 i=3
IMPLEMENTARE Secventa de instructiunipentrualgoritmul de sortareprinmetodaselectieidirecteeste: inti, j, n, aux, v [50]; cout <<"n=" ; cin >>n; for (i=0; i<n; i++) { cout << “v [ “ << i << “ ] = “ ; cin >> v [i] ; } for ( i = 0 ; i < n–1 ; i ++ ) for ( j = i + 1 ; j < n ; j ++ ) if ( v [j] < v[i] ) { aux = v[i]; v[i] = v[j]; v[j] = aux; } cout << “ Sirul sortat este: “ << endl; for ( i = 0; i < n; i ++ ) cout << v[i] << “ “ ;
FISA DE LUCRU • Scrietiprogramul care ordoneazacrescator un vector v cu maximum 50 elementeintregi. • Modificatiprogramulastfelincatsaordonezeelementelevectoruludescrescator. Problemesuplimentare: • Scrieti un program care citeste de la tastatura un vector cu numereintregisi un numarintreg k (k<n). Programulvaordonaelementele v[0]…v[k] din vector in ordinecrescatoaresielementele v[k+1]..v[n-1] in ordinedescrescatoare. • Sa se memorezeintr-un vector cifreleunuinumarsisa se afisezecelmaimicnumar care se poateobtine cu cifrelememorate.
Sfarsit! www.designfreebies.org