Advertisement
ioana_martin98

Untitled

Feb 24th, 2022
694
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.26 KB | None | 0 0
  1. // Bubble sort
  2.  
  3.     int v[100], n, i, j, aux;
  4.     //citeste nr de elemente
  5.     cin >> n;
  6.     //citeste vectorul
  7.     for (i = 1; i <= n; i++)
  8.         cin >> v[i];
  9.    
  10.     /*
  11.     de la 1 pana la n-1, nu n, pentru ca vom merge mereu pe pozitia curenta si pe pozitia urmatoare
  12.     si  daca ajungem pana la pozitia n, v[n+1] nu va exista
  13.     */
  14.     for (i = 1; i <= n - 1; i++)
  15.     {
  16.         /*
  17.         la finalul fiecarei parcurgeri, numerele cele mai mari se vor pozitiona incepand cu ultima pozitie,
  18.         apoi pe pozitia din stanga etc., astfel ca nu mai trebuie parcurs vectorul in intregime (de-aia e j<=n-i)
  19.         ex: prima parcurgere: i=1, j=1,n. la final, maximul dintre toate numerele se afla pe ultima pozitie, nu mai trebuie verificat
  20.         a doua parcurgere: i=2, j=1,n-1. maximul e tot pe ultima pozitie, al doilea cel mai mare nr e pe penultima
  21.         i=3, j=1,n-2
  22.          . . .
  23.         */
  24.         for (j = 1; j <= n - i; j++)
  25.         {
  26.             //daca elementul de pe pozitia curenta este mai mare decat vecinul din dreapta
  27.             if (v[j] > v[j + 1]) //ordonat crescator. pentru descrescator se pune <
  28.             {
  29.                 //interschimba cele valori a.i. valoarea mai mare sa se pozitioneze in dreapta
  30.                 aux = v[j];
  31.                 v[j] = v[j + 1];
  32.                 v[j + 1] = aux;
  33.             }
  34.         }
  35.     }
  36.  
  37.  
  38.     //afisare vector ordonat
  39.     for (i = 1; i <= n; i++)
  40.         cout << v[i] << " ";
  41.  
  42.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement