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; } } }