Metode de sortare

 

 

1. Sortare prin selectarea minimului

 

/*delaratii de variabile*/

int v[50], i,j,min,poz,aux;

 

/*functia de sortare*/

void sort_min()

{

            for(i=1; i<=n-1; i++)

                        {

                                    min=V[i];

                                    poz=i;

                                    for(j=i+1; j<=n; j++)

                                                if(V[j]<min)

                                                            {

                                                                        poz=j;

                                                                        min=V[]j;

                                                            }

                                    if(poz!=i)

                                                {

                                                            aux=V[poz];

                                                            V[poz]=V[i];

                                                            V[i]=aux;

                                                }

                        }

}

 

2. Sortare prin interschimbare

/*delaratii de variabile*/

int sort, v[50], i,n,aux;

 

/*functia de sortare*/

void intersch_cresc()

{     

            do{

                        sort=1;

                        for(i=1; i<=n-1; i++)

                                    if(v[i]>v[i+1])

                                                {

                                                            aux=v[i];

                                                            v[i]=v[i+1];

                                                            v[i+1]=aux;

                                                            sort=0;

                                                }

              }

            while(sort==0);

}

 

3. Sortare prin insertie

/*delaratii de variabile*/

int a[50], b[50], nrb,i,j,k;

 

/*functia de sortare*/

void inserare()

{

           

            b[1]=a[1];

            nrb=1;

            for(i=2; i<=n; i++)

                        {

                                    j=nrb;

                                    while((a[i]<b[j])&&(j>1))

                                                j--;

                                    nrb++;

                                    for(k=nrb; k>=j+1: k--)

                                                b[k+1]=b[k];

                                    b[j+1]=a[i];

                        }

}

 

4.Sortare prin interclasare

/*delaratii de variabile*/

int a[50], b[50], c[50], i,j,k,na,nb,nc;

 

/*functia de sortare*/

void interclasare()

{

           

            i=1; j=1; nc=0;

            while((i<=na)&&(j<=nb))

                        if(a[i]<b[j])

                                    {

                                                nc++;

                                                c[nc]=a[i];

                                                i++;

                                    }

                        else

                                    {

                                                nc++:

                                                c[nc]=b[j];

                                                j++;

                                    }

            if(i<na)

                        for(k=i; k<=na; k++)

                                    {

                                                nc++;

                                                c[nc]=a[k];

                                    }

            if(j<nb)

                        for(k=j; k<=nb; k++)

                                    {

                                                nc++;

                                                c[nc]=b[k];

                                    }

}