ALGORITMI PENTRU SORTAREA UNUI VECTOR METODA SELECTIEI DIRECTE

  • Slides: 9
Download presentation
ALGORITMI PENTRU SORTAREA UNUI VECTOR METODA SELECTIEI DIRECTE

ALGORITMI PENTRU SORTAREA UNUI VECTOR METODA SELECTIEI DIRECTE

CONTINUT ALGORITMI DE SORTARE METODA SELECTIEI DIRECTE § Caracteristici § Pasii algoritmului § Exemplu

CONTINUT ALGORITMI DE SORTARE METODA SELECTIEI DIRECTE § Caracteristici § Pasii algoritmului § Exemplu § Implementare

ALGORITMI DE SORTARE § Algoritmii de sortare rearanjeaza elementele vectorului astfel incat intre valorile

ALGORITMI DE SORTARE § Algoritmii de sortare rearanjeaza elementele vectorului astfel incat intre valorile lor sa existe o relatie de ordine (ordonare crescatoare sa descrescatoare). § Sortarea unui vector se poate realiza utilizand mai multe metode de sortare. Exemple: - metoda selectiei directe - metoda bulelor - metoda inserarii directe - interclasarea § Algoritmii sunt prezentati pentru ordonarea crescatoare a vectorului. Pentru ordonare descrescatoare se va nega expresia folosita pentru comparare.

METODA SELECTIEI DIRECTE § Metoda consta in aducerea pe prima pozitie a elementului cu

METODA SELECTIEI DIRECTE § Metoda consta in aducerea pe prima pozitie a elementului cu valoarea cea mai mica din cele n elemente ale vectorului, apoi aducerea pe pozitia a doua a elementului cu valoarea cea mai mica din cele n-1 elemente, reluandu-se procesul pentru elementele ramase. § Variabile utilizate: v – vectorul care se prelucreaza n – lungimea logica a vectorului i, j – variabile contor aux – variabila auxiliara pentru interschimbarea elementelor

PASII ALGORITMULUI Pas 1. Se initializeaza pozitia pe care se aduce minimul (i=0) Pas

PASII ALGORITMULUI Pas 1. Se initializeaza pozitia pe care se aduce minimul (i=0) Pas 2. Se aduce pe pozitia i a vectorului elementul cu valoarea minima din cele n-i-1 elemente astfel: Pas 2. 1. Se initializeaza pozitia primului element cu care se compara (j=i+1) Pas 2. 2. Se compara elementul v[i] cu v[j]. Daca v[j]<v[i] cele doua elemente se interschimba: aux=v[i]; v[i]=v[j]; v[j]=aux; Pas 2. 3. Se trece la urmatorul element pentru comparare (j=j+1) Pas 2. 4. Se compara j cu numarul de elemente in care se cauta minimul pentru a se vedea daca s-a terminat cautarea minimului. Daca j<n atunci se revine la Pas 2. 2. Pas 3. Se trece la urmatoarea pozitie din vector (i=i+1) pentru a duce pe aceasta pozitie minimul din cele n-i-1 elemente. Pas 4. Se compara I cu numarul de pozitii ale vectorului in care trebuie aduse valorile minime. Daca i<n-1 atunci se revine la Pas 2. Pas 5. Vectorul este sortat crescator.

EXEMPLU Fie un vector care contine numerele 4, 3, 2, 1: i=0 i=1 i=2

EXEMPLU Fie un vector care contine numerele 4, 3, 2, 1: i=0 i=1 i=2 4 1 1 3 2 1 j=1 4 3 2 1 j=2 3 4 2 1 j=3 2 4 3 1 4 1 2 j=2 1 4 3 2 j=3 1 3 4 2 2 j=3 i=3 3 2 4 1 3 2 3 4 4 3

IMPLEMENTARE Secventa de instructiuni pentru algoritmul de sortare prin metoda selectiei directe este: int

IMPLEMENTARE Secventa de instructiuni pentru algoritmul de sortare prin metoda selectiei directe este: int i, 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 § Scrieti programul care ordoneaza crescator un vector v cu maximum

FISA DE LUCRU § Scrieti programul care ordoneaza crescator un vector v cu maximum 50 elemente intregi. § Modificati programul astfel incat sa ordoneze elementele vectorulu descrescator. Probleme suplimentare: § Scrieti un program care citeste de la tastatura un vector cu numere intregi si un numar intreg k (k<n). Programul va ordona elementele v[0]…v[k] din vector in ordine crescatoare si elementele v[k+1]. . v[n-1] in ordine descrescatoare. § Sa se memoreze intr-un vector cifrele unui numar si sa se afiseze cel mai mic numar care se poate obtine cu cifrele memorate.

www. designfreebies. org

www. designfreebies. org