void Seleccion (int matriz[], int n)
{
register int i,j;
int mini;
for (j=0;j<n-1;j++) {
mini=j;
for (i=j+1;i<n;i++)
if (matriz[i]<matriz[mini])
mini=i;
i= matriz[j];
matriz[j]= matriz[mini];
matriz[mini]=i;
}
}
void Insercion (int matriz[], int n)
{
register int i,j;
int v;
for (i=1;i<n;i++) {
v=matriz[i];
j=i;
while (matriz[j-1]>v) {
matriz[j]= matriz[j-1];
j=j-1;
if (j==0) break;
}
matriz[j]= v;
}
}
void Burbuja (int matriz[], int n)
{
register int i,j;
int aux;
for (i=n-1;i>0;i--)
for (j=1;j<=i;j++)
if (matriz[j-1]>matriz[j]) {
aux= matriz[j];
matriz[j]= matriz[j-1];
matriz[j-1]=aux;
}
}
void SeleccionRecursivo (int matriz[], int n)
{
register int i;
int mini;
if (n>1) {
mini=0;
for (i=1;i<n;i++)
if (matriz[i]<matriz[mini])
mini=i;
i= matriz[0];
matriz[0]= matriz[mini];
matriz[mini]=i;
SeleccionRecursivo (matriz+1,n-1);
}
}
void OrdenMezcla (int matriz[], int izqda, int drcha, int auxiliar[])
{
int i,j,k,centro;
if (drcha-izqda>0) {
centro=(izqda+drcha)/2;
OrdenMezcla (matriz,izqda,centro,auxiliar);
OrdenMezcla (matriz,centro+1,drcha,auxiliar);
for (i=centro; i>=izqda; i--) auxiliar[i]=matriz[i];
for (j=centro+1; j<=drcha; j++) auxiliar[drcha+centro+1-j]= matriz[j];
i=izqda;
j=drcha;
for (k=izqda; k<=drcha; k++)
if (auxiliar[i]<auxiliar[j]) {
matriz[k]=auxiliar[i];
i=i+1;
}
else {
matriz[k]=auxiliar[j];
j=j-1;
}
}
}