Sunteți pe pagina 1din 9

ALGORITMI PENTRU SORTAREA

UNUI VECTOR

METODA SELECTIEI DIRECTE


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 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 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 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 4 3 2 1

j=1 4 3 2 1

j=2 3 4 2 1

j=3 2 4 3 1

i=1 1 4 3 2

j=2 1 4 3 2

j=3 1 3 4 2

i=2 1 2 4 3

j=3 1 2 4 3

i=3 1 2 3 4
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 < n1 ; 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 50


elemente intregi.
Modificati programul astfel incat sa ordoneze elementele vectorului
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.
Sfarsit !

www.designfreebies.org

S-ar putea să vă placă și