Acest algoritm ordonează crescător sau descrescător un șir de numere.
Dacă doriți să descărcați un exemplu de program care ordonează un șir de numere folosind acest algoritm, dați click pe ACEST LINK.
Din păcate acest algoritm nu este eficient deoarece dacă șirul este ordonat el nu își va da seama și va executa n(n-1)/2 operații. Un algoritm de ordonare mai eficient este buble-sort pe care îl vom aborda într-un articol viitor.
#include <iostream.h> #include <fstream.h> int v[100]; //se poate da orice valoare dorim in functie de numarul de valori care trebuie ordonate int n, i, ok; ifstream fin("vector.txt"); ofstream fout ("iesire.txt"); void main() { fin>>n; for (i=1; i<=n; i++) fin>>v[i]; do {ok=0; for (i=1; i<=n-1; i++) if (v[i]>v[i+1]) {v[i]=v[i]+v[i+1]; v[i+1]=v[i]-v[i+1]; v[i]=v[i]-v[i+1]; ok=1;} } while (ok==1); for (i=1; i<=n; i++) fout<<v[i]<<' '; cout<<"Ordonarea s-a realizat cu succes!"<<endl<<"Puteti vizualiza sirul ordonat in fisierul de iesire."<<endl; fin.close(); fout.close(); }