Descarca - WordPress.com

Download Report

Transcript Descarca - WordPress.com

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
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 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 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