#include <iostream> using namespace std; int main() { int n, v[11]; cin>>n; for(int i=1;i<=n;i++) cin>>v[i]; //il vom sorta crescator bool sortat; do { sortat=1; //presupunem ca este sortat for(int i=1;i<n;i++) if(v[i]>v[i+1]) //le vom interschimba { int aux=v[i]; v[i]=v[i+1]; v[i+1]=aux; sortat=0; //am gasit un element care e mai mic decat urmatorul } } while (!sortat); for(int i=1;i<=n;i++) cout<<v[i]<<' '; }
- citim elementele vectorului
- ne vom lua o variabila in care vom stoca 1 daca vectorul este sortat sau 0 altfel
- inainte de a le parcurge vom presupune ca acesta este sortat
- vom tot compara doua elemente consecutive, iar in cazul in care gasim un numar care e mai mare decat succesorul acestuia le vom interschimba si in variabila sortat vom pune 0, deoarece nu este sortat
- tot comparand doua cate doua si interschimbandu-le vectorul nostru se va sorta, practic de fiecare data noi ducem cel mai mare dintre numere pe ultima pozitie, penultima pozitie ... si tot asa pana ajungem la un element care nu mai poate fi dus
#include <iostream> using namespace std; int main() { int n, v[11]; cin>>n; for(int i=1;i<=n;i++) cin>>v[i]; //il vom sorta crescator for(int i=1;i<n;i++) { int p=i; for(int j=i+1;j<=n;j++) if(v[j]<v[p]) p=j; int auv=v[i]; v[i]=v[p]; v[p]=auv; } for(int i=1;i<=n;i++) cout<<v[i]<<' '; }
- citim elementele vectorului
- pentru fiecare pozitie de la 1 la n-1 vom cauta cel mai mic element de la pozitia curenta in colo si vom memora pozitia pe care se afla
- dupa ce am cautau vom aduce elementul respectiv pe pozitia i, interschimband elementul cu minimul
#include <iostream> #include <algorithm> using namespace std; int main() { int n, v[11]; cin>>n; for(int i=1;i<=n;i++) cin>>v[i]; //il vom sorta crescator sort(v+1, v+n+1); //se sorteaza elementele de pe pozitiile din intervalul [primul_parametru, ultimul_parametru) for(int i=1;i<=n;i++) cout<<v[i]<<' '; }
- citim elementele vectorului
- aceasta functie sorteaza crescator elementele in functie de pozitiile oferite de cei doi parametrii