Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Bubble sort
- int v[100], n, i, j, aux;
- //citeste nr de elemente
- cin >> n;
- //citeste vectorul
- for (i = 1; i <= n; i++)
- cin >> v[i];
- /*
- de la 1 pana la n-1, nu n, pentru ca vom merge mereu pe pozitia curenta si pe pozitia urmatoare
- si daca ajungem pana la pozitia n, v[n+1] nu va exista
- */
- for (i = 1; i <= n - 1; i++)
- {
- /*
- la finalul fiecarei parcurgeri, numerele cele mai mari se vor pozitiona incepand cu ultima pozitie,
- apoi pe pozitia din stanga etc., astfel ca nu mai trebuie parcurs vectorul in intregime (de-aia e j<=n-i)
- ex: prima parcurgere: i=1, j=1,n. la final, maximul dintre toate numerele se afla pe ultima pozitie, nu mai trebuie verificat
- a doua parcurgere: i=2, j=1,n-1. maximul e tot pe ultima pozitie, al doilea cel mai mare nr e pe penultima
- i=3, j=1,n-2
- . . .
- */
- for (j = 1; j <= n - i; j++)
- {
- //daca elementul de pe pozitia curenta este mai mare decat vecinul din dreapta
- if (v[j] > v[j + 1]) //ordonat crescator. pentru descrescator se pune <
- {
- //interschimba cele valori a.i. valoarea mai mare sa se pozitioneze in dreapta
- aux = v[j];
- v[j] = v[j + 1];
- v[j + 1] = aux;
- }
- }
- }
- //afisare vector ordonat
- for (i = 1; i <= n; i++)
- cout << v[i] << " ";
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement