Sunteți pe pagina 1din 8

ALGORITMI PENTRU SORTAREA

UNUI VECTOR

METODA BULELOR
(BUBBLE SORT)

CONTINUT

Caracteristici
Pasii algoritmului
Exemplu
Implementare

ALGORITMI DE SORTARE
Prin metoda bulelor se parcurge vectorul i se compar
fiecare element cu succesorul su. Dac nu sunt n ordine
cele dou elemente, acestea se interschimb ntre ele.
La prima parcurgere elementul de valoare maxim se
deplaseaz ctre ultima poziie. La a doua parcurgere,
elementul imediat urmtor ca valoare dup elementul
maxim se deplaseaz ctre penultima poziie.
Vectorul se parcurge de mai multe ori, pn cnd la o
parcurgere complet nu se mai execut nici o
interschimbare ntre elemente.

METODA SELECTIEI DIRECTE


Controlul aciunii repetitive este dat de variabila ok, care la fiecare
reluare a algoritmului primete valoarea iniial adevrat (1), i care
se schimb n fals (0) dac s-a efectuat o interschimbare. n
momentul n care tabloul v s-a parcurs fr s se mai efectueze nici o
schimbare, ok rmne cu valoarea iniial adevrat i algoritmul se
termin.

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

i=0

i=1

i=2

j=3

i=1

i=2

OK=0

j=2

j=3

j=3
i=3

4
1

3
2

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

Sfarsit !

www.designfreebies.org

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