Algoritmul de "Sortare prin selectie" este un algoritm pentru sortarea in ordine crescatoare sau descrescatoare a unei colectii de obiecte. In exemplul de mai jos am folosit un vector de numere intregi.
Algoritmul consta in parcurgerea repetata a vectorului pe secvente din ce in ce mai mici si aducerea pe prima pozitie a secventei parcurse a minimului din aceasta secventa. La prima parcurgere se aduce pe prima pozitie a vectorului minimul dintre toate numerele, la a doua parcurgere (de la al doilea element pana la ultimul) se aduce pe a doua pozitie minimul dintre numerele de la pozitia a doua pana la ultimul. A treia parcurgere se face de la al treilea element pana la ultimul si minimul se aduce pe pozitia a treia s.a.m.d. Ultima parcurgere va compara doar ultimele doua elemente ale vectorului.
void SelectSort(int v[], int n)
{
for (int i = 0; i < n-1; i++)
{
int minim = v[i];
int indmin = i;
for (int j = i+1; j < n; j++)
{
if (v[j] < minim)
{
indmin = j;
minim = v[j];
}
}
if (indmin != i)
{
int temp = v[i];
v[i] = v[indmin];
v[indmin] = temp;
}
}
}
{
for (int i = 0; i < n-1; i++)
{
int minim = v[i];
int indmin = i;
for (int j = i+1; j < n; j++)
{
if (v[j] < minim)
{
indmin = j;
minim = v[j];
}
}
if (indmin != i)
{
int temp = v[i];
v[i] = v[indmin];
v[indmin] = temp;
}
}
}
Niciun comentariu:
Trimiteți un comentariu