Documente Academic
Documente Profesional
Documente Cultură
METODA SELECTIONSORT
Exemplu:
Să ordonăm următorul vector, în care n=5:
int n, X[100];
//citire X[] cu n elemente
for(int i = 0 ; i < n - 1 ; i ++)
for(int j = i + 1 ; j < n ; j ++)
if(X[i] > X[j]){
int aux = X[i];
X[i] = X[j]; X[j] = aux;
}
Notă:
Algoritmul descris mai sus se mai numește sortare prin selecție generală, sau implicită.
O altă variantă este următoarea, în care pentru fiecare secvență i ... n-1 se determină explicit
minimul și se interschimbă cu X[i].
int n, X[100];
//citire X[] cu n elemente
for(int i = 0; i < n - 1; i++){
int p = i;
for(int j = i + 1; j < n; j++)
if(X[j] < X[p]) p= j;
int aux = X[i];
X[i] = X[p]; X[p] = aux;
}
Notă:
Pentru a vizualiza fiecare pas al acestei metode accesați link-ul de mai jos:
http://www.cs.armstrong.edu/liang/animation/web/SelectionSort.html
METODA BUBBLESORT
Exemplu:
Să ordonăm următorul vector, în care n=5:
int n, v[100];
//citire v[] cu n elemente
bool sortat;
do{
sortat = true;
for(int i = 0 ; i < n - 1 ; i ++)
if(v[i] > v[i+1]){
int aux = v[i];
v[i] = v[i+1]; v[i+1] = aux;
sortat = false;
}
}
while(!sortat);
Observație:
La fiecare parcurgere cel puțin un element ajunge pe poziția sa finală:
la prima parcurgere cel mai mare element al vectorului ajunge pe poziția sa finală;
la a doua parcurgere următorul cel mai mare element ajunge pe poziția finală;
Nu mai are rost să parcurgem aceste elemente, fixate. Astfel, putem parcurge vectorul numai
până la indicele unde s-a făcut ultima interschimbare la parcurgerea anterioară.
Dacă vom reveni la exemplul precedent și vom aplica cele observate, vom obține cele trei parcurgeri
fundamentale de sortare.
int n, v[100];
//citire v[] cu n elemente
bool sortat;
int m = n;
do{
sortat = true;
int p = m;
for(int i = 0 ; i < p - 1 ; i ++)
if(v[i] > v[i+1]){
int aux = v[i];
v[i] = v[i+1]; v[i+1] = aux;
sortat = false;
m = i + 1;
}
}
while(!sortat);
Notă:
Pentru a vizualiza fiecare pas al acestei metode accesați link-ul de mai jos:
http://www.cs.armstrong.edu/liang/animation/web/BubbleSort.html