Metoda bulelor (bubble sort) este cea mai simplă metodă de sortare. Ea se bazează pe utilizarea unei variabile auxiliare cu ajutorul căreia se face inter-schimbarea valorilor a două variabile adiacente.
Este ce mai costisitoare metodă din punct de vedere computațional.
În programul de mai jos avem două sortări: crescătoare și descrescătoare:
/*Metoda bulelor*/
#include <iostream>
using namespace std;
int main()
{
int v[100],n;
cout<<"Nr de elemente din vector "; cin>>n;
//citire vector
for(int i=0; i < n ;i++){
cout << "v[" << i <<"]= "; cin >> v[i];
}
cout << "Valorile din vector sunt: " << endl;
//Afisare vector
for(int i=0; i < n ;i++){
cout << v[i] <<" ";
}
cout << '\n';
cout<< "Sortare vector crescator" << endl;
//bubble sort crescator
for(int i=0; i < n-1 ;i++)
for(int j=0; j< n-i-1; j++)
{
int aux;
if(v[j]>v[j+1]){
aux = v[j];
v[j] = v[j+1];
v[j+1] = aux;
}
}
//Afisare vector
for(int i=0; i < n ;i++){
cout << v[i] <<" ";
}
cout << '\n';
cout<< "Sortare vector descrescator" << endl;
//bubble sort descrescator
for(int i=0; i < n-1 ;i++)
for(int j=0; j< n-i-1; j++)
{
if(v[j]<v[j+1]){
swap(v[j],v[j+1]);
}
}
//Afisare vector
for(int i=0; i < n ;i++){
cout << v[i] <<" ";
}
return 0;
}
Rezultatul rulării programului pentru n=5 iar valorile vectorului fiind 5,45,23,289,4 este:
Nr de elemente din vector 5
v[0]= 5
v[1]= 45
v[2]= 23
v[3]= 289
v[4]= 4
Valorile din vector sunt:
5 45 23 289 4
Sortare vector crescator
4 5 23 45 289
Sortare vector descrescator
289 45 23 5 4
Process returned 0 (0x0) execution time : 25.805 s
Press any key to continue.
Temă:
Să se modifice programul de mai sus astfel încât să se afișeze rezultatul sortării într-un fișier.
