Documente Academic
Documente Profesional
Documente Cultură
Definiție: Numim sortarea unui șir dispunerea (aranjarea) elementelor șirului într-o anumită
ordine (de exemplu, crescătoare sau descrescătoare).
Algoritmul pentru sortarea unui șir prin Metoda bulelor este următorul:
Metoda bulelor constă în compararea fiecărui element al șirului cu succesorul său. În cazul în
care cele două elemente comparate nu sunt în ordinea potrivită, ele se interschimbă.
Șirul de numere se parcurge de mai multe ori, până când nu mai este nicio interschimbare
între elemente.
Pentru a vedea dacă au fost interschimbări între elemente la o parcurgere, se definește o
variabilă eSortat, care primește valoarea 0 (Fals), dacă există interschimbări, și 1 (Adevărat),
dacă nu este nicio interschimbare, caz în care șirul este ordonat corespunzător.
Algoritmul pentru sortarea unui șir prin metoda selecției este următorul:
Metoda selecției constă în compararea fiecărui element al șirului cu toate elementele de
după el.
În cazul în care cele două elemente comparate nu sunt în ordinea potrivită, ele se
interschimbă. După efectuarea tuturor comparațiilor, șirul va fi sortat.
Problemă: Copiii unei școli au început să economisească bani din bursa lor. Știind că sunt n copii,
unde 1 ≤ n ≤ 100, ordonați crescător sumele strânse de ei la un moment dat.
Observație:
După ce elementul de pe o poziție i
este comparat cu toate cele de după
el (pozițiile j), pe poziția i va fi
plasat cel mai mic dintre elementele
comparate.
#include <iostream>
using namespace std;
int main()
{ int n, i, j, m, v[100];
cout<<"n="; cin>>n; //se introduce numărul de elemente
for(i=0; i<=n-1; i++) cin>>v[i]; //se introduc elementele șirului
for (i=0; i<=n-2; i++) //elementul i se compara
for (j=i+1; j<=n-1; j++) //elementul j cu care se compara elementul i
if(v[i]>v[j]) //daca elementele nu sunt in ordinea buna
{ m=v[i]; v[i]=v[j]; v[j]=m; } //atunci ele se interschimba
for(i=0; i<=n-1; i++) cout<<v[i]<<" "; //se afișează șirul sortat
return 0;
}