Código:
Console.WriteLine("Metodo de insercion directa");
int auxili;
int j;
for (int i = 0; i < numeros.Length ; i++)
{
auxili = numeros[i];
j = i - 1;
while (j >= 0 && numeros[j] > auxili)
{
numeros[j + 1] = numeros[j];
j--;
}
numeros[j + 1] = auxili;
}
for (int i = 0; i < longitud; i++)
Console.WriteLine(" " + numeros[i]);
Insercion Binaria
Código:
int auxiliar;
int q;
int izqui;
int dere;
for (int i = 0; i < numeros.Length; i++)
{
auxiliar = numeros[i];
izqui = 0;
dere = i - 1;
while (izqui <= dere)
{
q = ((izqui + dere) / 2);
if (auxiliar < numeros[q])
{
dere = q - 1;
}
else
{
izqui = q + 1;
}
j = i - 1;
while (j >= izqui)
{
numeros[j + 1] = numeros[j];
j = j - 1;
}
numeros[izqui] = auxiliar;
}
}
for (int i = 0; i < longitud; i++)
Console.WriteLine(" " + numeros[i]);
Shell
Código:
int salto = 0;
int sw=0;
int auxi = 0;
int e=0;
salto =longitud /2;
while (salto >0)
{
sw=1;
while (sw!=0)
{
sw=0;
e=1;
while (e<=(longitud -salto ))
{
if (numeros [e-1]>numeros [(e-1)+salto ])
{
auxi =numeros [(e-1)+salto ];
numeros [(e-1)+salto ]=numeros [e-1];
numeros [(e-1)]=auxi;
sw=1;
}
e++;
}
}
salto =salto /2;
}
for (int i = 0; i < longitud; i++)
Console.WriteLine(" " + numeros[i]);
Código:
int izquierda,derecha;
int pivot, i_det, d_det;
i_det = izquierda;
d_det = derecha;
pivot = numeros[izquierda];
while (izquierda <derecha )
{
while ((numeros [derecha ]>=pivot ) &&(izquierda <derecha ))
{
derecha --;
}
if (izquierda !=derecha )
{
numeros [izquierda]=numeros [derecha ];
izquierda ++;
}
while ((numeros [izquierda ]<=pivot )&&(izquierda <derecha ))
{
izquierda ++;
}
if (izquierda !=derecha )
{
numeros [derecha]=numeros [izquierda ];
derecha --;
}
}
numeros[izquierda] = pivot;
pivot = izquierda;
izquierda = i_det;
derecha = d_det;
if (izquierda < pivot)
{
quicksort(izquierda, pivot - 1);
}
if (derecha > pivot)
{
quicksort(pivot + 1, derecha);
}
Burbuja
Código:
int a,b,t;
for(a=1;a<longitud ;a++)
for(b=longitud -1;b>=a;b--)
{
if (numeros [b-1]>numeros [b])
{
t=numeros [b-1];
numeros [b-1]=numeros [b];
numeros [b]=t;
}
}
//desplegar arreglo
Console.WriteLine("Bubble sort");
for (int i = 0; i < longitud; i++)
Console.WriteLine(" " + numeros[i]);
Shaker
Código:
int n = numeros.Length;
int izq = 1;
int k = n;
int aux;
int der = n;
do
{
for (int i = der; i >= izq; i--)
{
if (numeros[i - 1] > numeros[i])
{
aux = numeros[i - 1];
numeros[i - 1] = numeros[i];
numeros[i] = aux;
k = i;
}
}
izq =k+1;
for (int i=izq;i<=der;i++)
{
if (numeros [i-1]>numeros [i])
{
aux=numeros [i-1];
numeros [i-1]=numeros [i];
numeros [i] =aux;
k=1;
}
}
der =k-1;
}
while (der>=izq );
for (int i = 0; i < longitud; i++)
Console.WriteLine(" " + numeros[i]);